jah*_*com 4 php apache .htaccess mod-rewrite redirect
我正在使用以下 htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301]
RewriteRule ^user/([^/]*)/$ /user/index.php?usr=$1
Run Code Online (Sandbox Code Playgroud)
前三行将非www url重定向到我网站的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再次调用此命令,如果需要,将匹配第二个规则.然后它将再次作为内部重写正常工作.
| 归档时间: |
|
| 查看次数: |
130 次 |
| 最近记录: |