我在.htaccess
中定义了以下规则,这是我不久前在另一个线程中发现的(我不记得是哪个):
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteRule ^((?!sub/).*)$ /sub/$1 [L]
目标是显示domain.com/sub
的任何内容,就像显示来自sub.domain.com
的内容一样。这工作正常。
但是,有一个小警告:sub.domain.com
和sub.domain.com/sub
都可以正常工作。
如何防止sub.domain.com/sub
被访问?我试图将其重写/重定向到sub.domain.com
,但是,当然,我最终遇到了无限循环重定向。
答案 0 :(得分:1)
在sub/.htaccess
中具有您的第一条规则:
RewriteEngine On
# remove /sub/ from URIs
RewriteCond %{THE_REQUEST} \s/+sub/(\S*)\s
RewriteRule . /%1 [L,NE,R=301]
将有问题的规则保留在网站根.htaccess中。