我知道这听起来像是很多其他问题,但我似乎找不到答案。
假设您正在:
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?
最佳答案
模式^(.*)$
还包括前缀folderA
。您必须在模式中明确指定folderA
,并且仅捕获RewriteRule中的后一部分。然后您可以删除RewriteCond
RewriteEngine on
RewriteRule ^/?folderA/(.*)$ /folderB/$1 [R,L]
切勿在启用
301
的情况下进行测试,有关详细信息,请参见此答案Tips for debugging .htaccess rewrite rules。