この URL を変更するにはどうすればよいですか
http://mysite.com/index.php?searchterm=my+great+song
に
http://mysite.com/search/my-great-song.html
私は mod_rewrite の初心者です。それが私が何をすべきか理解できない理由です。URLを変更するために.htaccessファイルに書くべき.htaccessコードを教えていただけると助かります。
この URL を変更するにはどうすればよいですか
http://mysite.com/index.php?searchterm=my+great+song
に
http://mysite.com/search/my-great-song.html
私は mod_rewrite の初心者です。それが私が何をすべきか理解できない理由です。URLを変更するために.htaccessファイルに書くべき.htaccessコードを教えていただけると助かります。
次のhtaccessはあなたのために働くはずです
RewriteEngine on
RewriteCond %{ENV:stripspaces} 1
RewriteRule ^(.*)%20(.*)$ $1-$2 [N]
RewriteCond %{QUERY_STRING} ^searchterm=(.*)$
RewriteRule ^index\.php$ /search/%1.html? [E=stripspaces:1,E=redirect:1,N]
RewriteCond %{ENV:redirect} 1
RewriteRule ^(.*)$ $1 [R,E=!stripspaces,E=!redirect]
環境変数[E=a:b]
( docs ) を使用して、スペースを削除するタイミングを制御し、大量のリダイレクトを防ぎます。このN
フラグにより、rewriteengine は再び .htaccess ファイルの先頭から開始されます。したがって、一致する必要があるルールの量を最小限に抑えるために、stripspaces ルールを一番上に置きます。2 番目のルールの%1
は、rewrite 条件の最初のキャプチャ グループへの後方参照です。末尾?
はクエリ文字列をクリアします。これらすべてのドキュメントはhttpd.apache.orgにあります。