我需要.htaccess将子文件夹重定向到根文件夹,但两个文件夹除外

iszxjhcz  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(203)

我要重定向到根文件夹的子文件夹是www.example.com/subfolder
因此,我需要将该子文件夹中的所有内容重定向到url地址https://www.example.com,但以下两个文件夹除外(它们位于子文件夹中):www.example.com/subfolder/folder1www.example.com/subfolder/folder2的函数
我花了大约4个小时试图找到确切的代码,但我不能解决,没有为我工作。
我试过很多密码,但没有一个对我有效。例如:

RewriteEngine On 
RewriteCond %{REQUEST_URI}!^/subfolder/folder1/
RewriteCond %{REQUEST_URI}!^/subfolder/folder2/ 
RewriteRule ^(.*)$ /$1 [R=301,L]

RewriteEngine on  
Options +FollowSymlinks 
RewriteCond %{REQUEST_URI}!^/subfolder/folder1/ 
RewriteCond %{REQUEST_URI}!^/subfolder/folder2/ 
#RewriteRule (.*) http://www.example.com/subfolder/ [R=301,QSA,L]
RewriteRule    (.*)  https://www.example.com     [R]

有人能帮我吗?
我希望将.htaccess文件放在子文件夹中。
非常感谢你。

cdmah0mi

cdmah0mi1#

我认为你的第一次尝试看起来很不错。只是做了一点小小的修改,因为你说你想重定向到根路径,而不是根路径里面的东西:

RewriteEngine On 
RewriteCond %{REQUEST_URI}!^/subfolder/folder1/
RewriteCond %{REQUEST_URI}!^/subfolder/folder2/ 
RewriteRule ^(.*)$ / [R=301,QSD,L]

由于您希望使用分布式配置文件(与http主机的首选中央配置相对),因此该规则应在“子文件夹”内的“.htaccess”文件中使用。
一开始使用R=302temporary 重定向是个好主意,只有在一切正常工作后才将其更改为R=301permanent 重定向。此外,您需要确保始终使用新的匿名浏览器窗口进行测试,以防止客户端缓存效应。
而且您还需要确保http服务器在该位置考虑了这样的分布式配置文件(请参阅AllowOverride指令的文档)。

相关问题