[英]RedirectMatch Regex only working on some browsers/machines
我正在尝试执行以下301重定向。
/blog/ is not redirected.
/blog/xxxxx/ is redirected to /blog/
/blog/page/x is not redirected
我不是正则表达式的专家,在研究了很多stackoverflow帖子后,我想到了:
RedirectMatch 301 /blog/((?!page/.*)[0-9a-zA-Z\-]{1,})*/ http://www.xxxxxxx.com/blog/
尽管这在我的mac机上有效,但由于某种原因,它在我的PC上无法在chrome中工作(在/ blog /页面上报告无限循环,与IE相同)。
我最初是用更简单的方式编写的,没有[0-9a-zA-Z\\-]{1,}
部分。 包括这是我尝试修复chrome @ windows上的无限循环问题。
编辑:我也使用在线正则表达式工具对其进行了测试,它似乎工作正常: http : //imgur.com/pSRCn5b
谁能提供任何指针?
首先清除浏览器的缓存,然后在测试中使用R = 302。
为此,最好使用mod_rewrite。
通过httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放在DOCUMENT_ROOT
目录下的.htaccess
:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteRule ^(blog)/([^/]+)/?$ /$1 [L,R=302,NC]
确认其工作正常后,将R=302
替换为R=301
。 在测试mod_rewrite规则时,避免使用R=301
(永久重定向)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.