我有2个目录,我想重命名而不会丢失我的搜索排名。这里是URL惯例,并建议更改名称:htaccess帮助重命名目录
老:mysitename.com/folder1/folder2/filenames
到
新:mysitename.com/newfoldername1/newfoldername2/filenames
文件名是每个页面的指定名称
我有2个目录,我想重命名而不会丢失我的搜索排名。这里是URL惯例,并建议更改名称:htaccess帮助重命名目录
老:mysitename.com/folder1/folder2/filenames
到
新:mysitename.com/newfoldername1/newfoldername2/filenames
文件名是每个页面的指定名称
RewriteRule ^(.*)/folder1/folder2/(.*)$ $1/newfoldername1/newfoldername2/$2 [R,L]
这个规则的问题是,快退riteRules只在路径上匹配,而不是域。您在规则的前面有(.*)/
,就好像您尝试匹配域一样,这不是必需的。你也将它设置为重定向而不是重写...也许这就是你想要的,在这种情况下,保持“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]
这是完整的文件: #BEGIN WordPress的
我刚刚添加到您的问题(等待批准)......您应该将这样的细节添加到更容易阅读的问题中。 –
当你说“这是完整的文件”......我看不到我提供的规则。你说你说它不起作用的地方是哪里?规则顺序非常重要。我提供的规则必须超越其他规则。另外,现在我看到了其他规则,我已经编辑了我的答案,省略了“[L]'”,这会阻止后续的规则。 –
你尝试过这么远吗?请张贴您尝试过的并且有问题的规则。 (。*) –
RewriteEngine叙述上 重写规则^/folder1中/文件夹2 /(.*)$ $ 1/newfoldername1/newfoldername2/$ 2 R,L] – dBiz