-1

我有 2 个目录,我想在不丢失搜索排名的情况下重命名它们。这是 url 约定和建议的名称更改:

旧:mysitename.com/folder1/folder2/filenames

新:mysitename.com/newfoldername1/newfoldername2/filenames

文件名是每个页面的给定名称

4

1 回答 1

2

RewriteRule ^(.*)/folder1/folder2/(.*)$ $1/newfoldername1/newfoldername2/$2 [R,L]

这个规则的问题是 RewriteRules 只匹配路径,而不是域。您(.*)/在规则的前面有 ,就好像您正在尝试匹配域一样,这不是必需的。您还将其设置为重定向而不是重写...也许这就是您想要的,在这种情况下,请保留“R”标志,但我会在下面的代码中将其删除,以防您只是想重写。修改规则如下,它应该工作:

RewriteRule ^newfoldername1/newfoldername2/(.*)$ /folder1/folder2/$1

编辑:既然您已经发布了其他规则,我删除了[L]并将顺序颠倒到我认为您正在尝试做的事情。

编辑 2:上述规则假设您希望用户输入domain.com/newfoldername1/newfoldername2/whatever被静默重写为domain.com/folder1/folder2/whatever. 您最新评论的措辞表明您希望将输入的用户domain.com/folder1/folder2/whatever重定向(换句话说,在他们的浏览器中更改地址),domain.com/newfoldername1/newfoldername2/whatever并且服务器已准备好处理此新路径。在这种情况下,需要以下规则:

RewriteRule ^folder1/folder2(/.*)?$ /newfoldername1/newfoldername2$1[R=301,L]

于 2013-02-03T00:23:35.827 回答