将子域重写到文件夹后避免内容重复
Avoid content duplication after rewriting subdomain to folder
我在我的 .htaccess
中定义了以下规则,这是我前一段时间在另一个线程中找到的(我不记得是哪个线程):
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteRule ^((?!sub/).*)$ /sub/ [L]
目标是显示 domain.com/sub
的任何内容,就像它们来自 sub.domain.com
一样。这工作正常。
但是,有一个小警告:sub.domain.com
和 sub.domain.com/sub
都有效。
如何防止 sub.domain.com/sub
被访问?我试图 rewrite/redirect 它到 sub.domain.com
但是,当然,我最终得到了无限循环重定向。
将你的第一条规则放在里面 sub/.htaccess
:
RewriteEngine On
# remove /sub/ from URIs
RewriteCond %{THE_REQUEST} \s/+sub/(\S*)\s
RewriteRule . /%1 [L,NE,R=301]
将有问题的规则保留在站点根目录 .htaccess 中。
我在我的 .htaccess
中定义了以下规则,这是我前一段时间在另一个线程中找到的(我不记得是哪个线程):
RewriteCond %{HTTP_HOST} ^sub\.domain\.com$
RewriteRule ^((?!sub/).*)$ /sub/ [L]
目标是显示 domain.com/sub
的任何内容,就像它们来自 sub.domain.com
一样。这工作正常。
但是,有一个小警告:sub.domain.com
和 sub.domain.com/sub
都有效。
如何防止 sub.domain.com/sub
被访问?我试图 rewrite/redirect 它到 sub.domain.com
但是,当然,我最终得到了无限循环重定向。
将你的第一条规则放在里面 sub/.htaccess
:
RewriteEngine On
# remove /sub/ from URIs
RewriteCond %{THE_REQUEST} \s/+sub/(\S*)\s
RewriteRule . /%1 [L,NE,R=301]
将有问题的规则保留在站点根目录 .htaccess 中。