我想从http://example.com/folder至http://example.com/但仍然可以访问http://example.com/folder/subfolder没有被重定向。所以只有特定的“文件夹”-URL应该被重定向到根目录。这是可行的吗?似乎不能排除子文件夹。当前代码(也重定向文件夹/子文件夹)为:
http://example.com/folder
http://example.com/
http://example.com/folder/subfolder
Redirect folder https://www.example.com/
非常感谢!
vybvopom1#
问题出在Redirect指示词,它符合任何以指定模式开头的URI。这里它会符合任何以/folder开头的URI。您可以使用RedirectMatch通过正则表达式进行精确匹配:
Redirect
/folder
RedirectMatch
RedirectMatch 302 ^/folder/$ https://www.example.com/
或者使用RewriteRule:
RewriteRule
RewriteRule ^/?folder/$ https://www.example.com/ [L,R=302,NC]
请注意,我在RewriteRule中保留了前导/可选。这使得此规则与Apache服务器配置兼容,在Apache服务器配置中,它应以/和.htaccess开头,其中前导/不匹配,因为.htaccess是每个目录指令,Apache从RewriteRule URI模式中剥离了当前目录路径(因此前导斜线)。
/
.htaccess
1条答案
按热度按时间vybvopom1#
问题出在
Redirect
指示词,它符合任何以指定模式开头的URI。这里它会符合任何以/folder
开头的URI。您可以使用
RedirectMatch
通过正则表达式进行精确匹配:或者使用
RewriteRule
:请注意,我在
RewriteRule
中保留了前导/
可选。这使得此规则与Apache服务器配置兼容,在Apache服务器配置中,它应以/
和.htaccess开头,其中前导/
不匹配,因为.htaccess
是每个目录指令,Apache从RewriteRule
URI模式中剥离了当前目录路径(因此前导斜线)。