14

我知道这听起来像很多其他问题,但我似乎找不到答案。

假设您在:www.domain.com/folderA/folder2/folder3/

我希望它重定向到:www.domain.com/folderB/folder2/folder3/

所以整个结构保持不变..它只是重定向。现在到目前为止我有:

RewriteEngine on
RewriteCond %{REQUEST_URI} ^/folderA [NC]
RewriteRule ^(.*)$ /folderB/$1 [R=301,L]

但是当我使用它时,它只会做 www.domain.com/folderB/folderA/folder2/folder3/

我究竟做错了什么?我如何摆脱那个文件夹A?

4

1 回答 1

23

该模式^(.*)$还包括前缀folderA。您必须folderA在模式中明确指定并仅捕获 RewriteRule 中的后半部分。然后你可以删除 RewriteCond

RewriteEngine on
RewriteRule ^/?folderA/(.*)$ /folderB/$1 [R,L]

永远不要在启用的情况下进行测试,有关详细信息301,请参阅此答案提示调试 .htaccess 重写规则

于 2013-02-15T23:02:47.953 回答