1

我正在尝试执行以下 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

任何人都可以提供任何指示吗?

4

1 回答 1

1

首先清除浏览器的缓存并在测试中使用 R=302。

最好为此使用 mod_rewrite。

通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_ROOT目录下:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^(blog)/([^/]+)/?$ /$1 [L,R=302,NC]

确认它工作正常后,替换R=302R=301. R=301在测试你的 mod_rewrite 规则时避免使用(永久重定向)。

于 2013-07-02T13:53:06.430 回答