首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >RewriteEngine -强制新的友好URL会导致过多的重定向

RewriteEngine -强制新的友好URL会导致过多的重定向
EN

Stack Overflow用户
提问于 2017-03-24 21:32:22
回答 1查看 104关注 0票数 1

此规则将像http://www.example.com/index.php?page=about这样的URL转换为像http://www.example.com/about这样友好的URL

代码语言:javascript
代码运行次数:0
运行
复制
RewriteRule ^([a-zA-Z_]+)?$     index.php?page=$1 [NC,L]

它工作得很好。但是,目前旧的网址(如http://www.example.com/index.php?page=about)在谷歌中被索引。因此,除了该规则之外,我还需要将所有旧网址(如http://www.example.com/index.php?page=about)重定向到新的友好网址(如http://www,example.com/about),这样当访问者访问旧网址时,他会被重定向到友好网址。我写了这条规则:

代码语言:javascript
代码运行次数:0
运行
复制
RewriteCond %{QUERY_STRING} ^page=([^&]+)$ [NC]
RewriteRule ^index\.php$ http://www.example.pl/%1? [NC,R=301,L]

它重定向到新的URL,但它不是显示网站内容,而是抛出一个错误ERR_TOO_MANY_REDIRECTS。

有什么帮助吗?

EN

回答 1

Stack Overflow用户

发布于 2017-03-24 21:47:51

由于你的内部rewriteRules,你得到了太多的重定向错误,因为他们在第一次重写迭代后将请求内部转发到相同的位置,要解决这个问题,请在你的htaccess的顶部添加以下内容,

代码语言:javascript
代码运行次数:0
运行
复制
RewriteEngine on


RewriteCond %{ENV_REDIRECT_STATUS} 200
RewriteRule ^ - [L]

或者,您可以与%{THE_REQUEST}而不是%{QUERY_STRING}进行匹配,以避免重写循环/太多重定向错误

代码语言:javascript
代码运行次数:0
运行
复制
RewriteCond %{THE_REQUEST} /index\.php\?page=([^\s]+) [NC]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43000867

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档