什么是最好的.htaccess重写代码来强制像这样的URL
https://www.example.com/index.php?page=report/tinytoes_mothercare
到那个?
https://www.example.com/report/tinytoes_mothercare
我的网站已经解决了https://www.example.com/report/tinytoes_mothercare
,因此,我想避免上面的URL丑陋和错误的任何重复内容。
您可以在.htaccess
文件的顶部执行以下操作,之前现有的“ [解析 URL解析的rewrite”。
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^page=([\w/-]*)
RewriteRule ^index\.php$ /report/%1 [R=302,L]
检查环境变量字符串中使用此值。请注意,这是302(临时)重定向。仅在确定可以正常工作时才更改为301(永久),以避免缓存问题。REDIRECT_STATUS
的第一个条件确保了通过重定向重写的URL不会导致重定向循环。REDIRECT_STATUS
在初始请求上为空,因此仅重定向来自客户端的直接请求。第二个条件从查询字符串
page
URL参数获取必要的值。这与字符a-z
,A-Z
,0-9
,_
(下划线),/
(斜线)和-
(连字符)相匹配-如您的示例URL。如果您需要匹配更多的变化形式,那么字符类将需要扩展。然后,使用RewriteRule
后向引用在%1
substitution