如何更改此 URL
http://mysite.com/index.php?searchterm=my+great+song
至
http://mysite.com/search/my-great-song.html
我是 mod_rewrite 的初学者。这就是为什么我不知道该怎么做。如果您能告诉我应该在 .htaccess 文件中写入以更改 url 的 .htaccess 代码,我将不胜感激。
如何更改此 URL
http://mysite.com/index.php?searchterm=my+great+song
至
http://mysite.com/search/my-great-song.html
我是 mod_rewrite 的初学者。这就是为什么我不知道该怎么做。如果您能告诉我应该在 .htaccess 文件中写入以更改 url 的 .htaccess 代码,我将不胜感激。
我尝试了它的工作
Options +FollowSymLinks
RewriteEngine On
RewriteRule ^index.html$ index.php
RewriteRule ^search/([^\.]+).html$ /index.php?searchterm=$1
Options All -Indexes
<files .htaccess>
order allow,deny
deny from all
</files>
你可以试试这段代码:
RewriteEngine On
RewriteRule ^search/([^\.]+).html$ /index.php?searchterm=$1
以下 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
标志使重写引擎再次从 .htaccess 文件的顶部开始。因此,我将 stripspaces 规则放在顶部,以尽量减少需要匹配的规则数量。第二%1
个规则是对重写条件中第一个捕获组的反向引用。尾随?
清除查询字符串。所有这些的文档都可以在httpd.apache.org上找到。