将子域重写到文件夹后避免内容重复

时间:2018-12-05 16:02:52

标签: apache .htaccess subdomain

我在.htaccess中定义了以下规则,这是我不久前在另一个线程中发现的(我不记得是哪个):

RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteRule ^((?!sub/).*)$ /sub/$1 [L]

目标是显示domain.com/sub的任何内容,就像显示来自sub.domain.com的内容一样。这工作正常。

但是,有一个小警告:sub.domain.comsub.domain.com/sub都可以正常工作。

如何防止sub.domain.com/sub被访问?我试图将其重写/重定向到sub.domain.com,但是,当然,我最终遇到了无限循环重定向。

1 个答案:

答案 0 :(得分:1)

sub/.htaccess中具有您的第一条规则:

RewriteEngine On

# remove /sub/ from URIs
RewriteCond %{THE_REQUEST} \s/+sub/(\S*)\s
RewriteRule . /%1 [L,NE,R=301]

将有问题的规则保留在网站根.htaccess中。