-1

この URL を変更するにはどうすればよいですか

http://mysite.com/index.php?searchterm=my+great+song

http://mysite.com/search/my-great-song.html

私は mod_rewrite の初心者です。それが私が何をすべきか理解できない理由です。URLを変更するために.htaccessファイルに書くべき.htaccessコードを教えていただけると助かります。

4

3 に答える 3

0

次の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にあります。

于 2013-07-22T12:19:27.163 に答える