2017-03-18 11 views
1

私は.htaccessが新しく、いくつかのURLの書き換えに問題があります。write .htaccessウェブサイトのURLの複数のパラメータを書き換えます

私のウェブサイトはphpで作成され、2つのパラメータ、param1とparam2を持っています。私は、「index.phpの」を削除2名でのparam1とPARAM2を交換し、最後に「.htmlを」を追加する.htaccessファイルを作成したいと思います

www.website.com/index.php?param1=12345678 
www.website.com/index.php?param1=09876543 

www.website.com/index.php?param2=abcdefgh 
www.website.com/index.php?param2=qwertzui 

: URLはに類似したように見えます彼らは次のようになりました:

www.website.com/budget/12345678.html 
www.website.com/budget/09876543.html 

www.website.com/user/abcdefgh.html 
www.website.com/user/qwertzui.html 

私は(インターネットからコピーされた)このコードを持っています。 これは.php拡張子を削除しますが、内部的にはURLの末尾に書き換えて、パラメータを無視します。

誰かが私にコードを書くのを助けてくれるのですか?

感謝:)

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

## hide .php extension snippet 

# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R,L] 

# To internally forward /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*?)/?$ $1.php [L] 

答えて

0

はあなたが試すことができます。Mr1234 @

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

# handle ?param1=... 
RewriteCond %{THE_REQUEST} \s/+(?:index\.php)?\?param1=([^\s&]+) [NC] 
RewriteRule^/budget/%1.html? [R=301,L,NE] 

# handle ?param2=... 
RewriteCond %{THE_REQUEST} \s/+(?:index\.php)?\?param2=([^\s&]+) [NC] 
RewriteRule^/user/%1.html? [R=301,L,NE] 

## hide .php extension snippet 

# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R=301,NE,L] 

RewriteRule ^budget/([^/.]+)/?$ index.php?param1=$1 [L,QSA,NC] 

RewriteRule ^user/([^/.]+)/?$ index.php?param2=$1 [L,QSA,NC] 

# To internally forward /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}.php -f 
RewriteRule ^(.*?)/?$ $1.php [L] 
+0

:この作品を出しましたか? – anubhava

関連する問題