繁体   English   中英

RedirectMatch正则表达式仅适用于某些浏览器/计算机

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM