我知道这听起来像其他许多问题,但我似乎无法找到答案。
说你在: 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?
答案 0 :(得分:17)
模式^(.*)$
还包含前缀folderA
。您必须在模式中明确指定folderA
,并仅在RewriteRule中捕获后一部分。然后你可以放弃RewriteCond
RewriteEngine on
RewriteRule ^/?folderA/(.*)$ /folderB/$1 [R,L]
永远不要在启用301
的情况下进行测试,请参阅此回答Tips for debugging .htaccess rewrite rules了解详细信息。