为特定重定向规则添加尾部斜杠

时间:2009-07-02 23:33:41

标签: mod-rewrite redirect

我正在将一个网站移到Wordpress,同时改变他们在旧平台上的复杂网址结构。典型的URL看起来像这样:

/blog/index.php/weblog/comments/post-name

但也可能看起来像这样:

/blog/index.php/weblog/comments/post-name/

(不是尾部斜杠的不一致使用)

这只是通往同一内容的十几条不同路径的一个示例。结果我创建了一堆特定的重写规则,如下所示:

RewriteRule ^ blog / index.php / weblog / comments /(.*)$ http://host.com/ $ 1

问题是如果原始URL不包含尾部斜杠,我会得到双301的情况,这显然对SEO非常不利。重定向如下:

/blog/index.php/weblog/comments/post-name [301]
http://host.com/post-name [301]
http://host.com/post-name/ [200]

Wordpress正在添加斜杠作为已设置的永久链接结构的一部分。我的问题是:在Wordpress参与之前,我是否可以检查尾部斜杠并添加它?

我已经尝试([^。/] +)$映射到/ $ 1 /但是当我想要删除帖子名称之前的所有内容时,这似乎捕获了comments目录。

发布前最后一分钟的想法: 作为mod_rewrite和regex的noob,我发现可能有一个全局重写规则删除帖子名称之前的所有内容,条件添加尾部斜杠最有效。可行?

1 个答案:

答案 0 :(得分:1)

也许这会起作用

RewriteRule ^blog/index.php/weblog/comments/([^/]+)/?$ http://host.com/$1/
相关问题