加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 内部重写的查询字符串显示在重定向中

发布时间:2020-12-13 17:45:56 所属栏目:PHP教程 来源:网络整理
导读:我正在使用以下htaccess RewriteEngine On RewriteCond %{HTTP_HOST} !^www. RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301] RewriteRule ^user/([^/]*)/$/user/index.php?usr=$1 前三行将非www url重定向到我网站的www .. 另一行重定向以用
我正在使用以下htaccess

RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www.
    RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301]
    RewriteRule ^user/([^/]*)/$/user/index.php?usr=$1

前三行将非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,如果需要,将匹配第二个规则.然后它将再次作为内部重写正常工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读