我真的很困惑......我已经进行了搜索和实验,但似乎没有任何工作可做。所以我放弃了,并在这里问:)
如何将/ subfolder重定向到root,但子文件夹中的每个页面都应该重定向到root?
/子文件夹重定向到root / subfolder / another-folder重定向到root(不是root / another-folder)
感谢。
答案 0 :(得分:0)
要将请求从/subfolder
重定向到/
(到根文件夹),您可以在htaccess文件中使用以下规则:
RewriteEngine on
RewriteCond %{THE_REQUEST} /subfolder/(.*)\sHTTP [NC]
RewriteRule ^.+$ /%1 [NE,L,R]
上面的RewriteRule会将来自/subfolder/foobar
的任何请求重定向到/foobar
,但由于/foobar
中/root
不存在,因此您将收到404未找到的错误饲料。
要解决此问题,您需要一个RewriteRule来内部重写从/root
到/subfolder
的请求。以下规则将内部映射http://example.com/foobar
到http://example.com/subfolder/foobar
。从根目录重定向子文件夹是不可见的。
在subfolder
到/root
重定向规则
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)$ /subfolder/$1 [L]
编辑:
道歉。我误解了你的问题。如果您想将/subfolder
请求重定向到根文件夹,请尝试以下操作:
RewriteEngine on
RewriteCond %{THE_REQUEST} /subfolder/(.*)\sHTTP [NC]
RewriteRule ^.+$ / [NE,L,R]