我正在将一个网站移到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,我发现可能有一个全局重写规则删除帖子名称之前的所有内容,条件添加尾部斜杠最有效。可行?
答案 0 :(得分:1)
也许这会起作用
RewriteRule ^blog/index.php/weblog/comments/([^/]+)/?$ http://host.com/$1/