我正在使用以下 htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301]
RewriteRule ^user/([^/]*)/$ /user/index.php?usr=$1
前三行将非www网址重定向到我的网站的www。
出于规范目的,另一行重定向,例如www.mysite.com/user/index.php?usr=JAHAJEE
将变为www.mysite.com/user/JAHAJEE/
。
我的问题是在将上述非www的重定向添加到www之后,规范化的重定向页面显示了url参数(例如www.mysite.com/user/JAHAJEE/?usr=JAHAJEE)。请检查http://www.jahajee.com/user/JAHAJEE/和http://jahajee.com/user/JAHAJEE/
如何防止url参数显示在重定向的URL中。先感谢您。
该[R=301]
让的mod_rewrite知道请求应该被重定向,但请求不会立即转向。它将评估规则,直到找到[L]
或[END]
标志(或到达文件末尾)。现在,它与第一个规则匹配,并告诉您当mod_rewrite感觉就绪时,它应该重定向。mod_rewrite仍未找到L
或END
标志,并且仍然具有匹配的规则。然后它将匹配第二个规则,并将其包含在重定向中。
您需要更改第一个规则的标志[R=301,L]
以使其重定向。重定向的请求将.htaccess
再次调用它,并且如果需要,将匹配第二个规则。然后它将作为内部重写再次正常工作。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句