2017-06-20 66 views
2

所以我有这个网站:www.example.com,这在过去会重定向客户www.example.com/subdir重定向子域名只为根

现在我更新了整个网站,和子目录不再存在,我想要主域名是根。问题是许多客户端已经将url包含在子域中,所以我需要一个重定向规则将www.example.com/subdir路由到www.example.com。

我尝试这样做:

RewriteRule ^subdir/(.*)$ $1 

,如果我进入www.example.com/subdir/ 与最后一个斜线

,但如果我访问www.example.com/subdir 其中工程没有最后的斜线它不会做这项工作。

我该如何让它工作?

回答

3

您的规则改成这样:

RewriteRule ^subdir(?:/(.*))?$ /$1 [L,NC,R=301,NE] 

它在这里使用R=301很重要,这样所有的客户端和搜索引擎最终会转移到新的URL,而不是继续使用重复URL相同内容(坏SEO) 。

+1

你正在翻倍的替代正斜杠。我更新了答案。 – SuperDuperApps

+1

非常感谢@SuperDuperApps,是的,你的编辑是完美的。 – anubhava

+1

我唯一担心的是'/ subdir'中的$ 1将是空的。也许更好的方法是'^ subdir(?:/(。*))?$/$ 1'。我也不认为'NE'在这里是必要的。 – SuperDuperApps