我最近购买了多域托管,并在我的计划中托管了多个域名。其他域托管在我的主域中的子文件夹中。因此,当我转到www.secondarydomain.com
时,它会显示位于www.primarydomain.com/secondarydomain
的网站。
现在,当有人试图访问www.primarydomain.com/secondarydomain
同时保持www.secondarydomain.com活着时,我想要阻止直接访问。
我该怎么做?
答案 0 :(得分:2)
通过httpd.conf
启用mod_rewrite和.htaccess,然后将此代码放在.htaccess
目录下的DOCUMENT_ROOT
中:
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{HTTP_HOST} ^www\.primarydomain\.com$ [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^\s\?]+)
RewriteRule ^ http://www.%1.com [R=302,L]
一旦确定它正常工作,请将302更改为301。
PS:请注意,它会将http://www.primarydomain.com/foo
等每个网址与物理目录foo
重定向到http://www.foo.com
。
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{HTTP_HOST} ^www\.primarydomain\.com$ [NC]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+([^\s\?]+)
RewriteRule ^(?!(foo|bar|baz)/).*$ http://www.%1.com [R=302,L]
答案 1 :(得分:1)
我知道在IIS中,您可以设置规则,以便如果有人访问www.primarydomain.com/secondarydomain,您可以将其重定向到www.secondarydomain.com。它是您寻找的基本模式匹配,如果它解析为“true”,它将在您告诉它时重定向。
如果您不希望www.primarydomain.com/secondarydomain完全工作,您可以执行相同的操作,但重定向到错误页面除外。我确定apache和其他服务器具有类似的功能,但我在IIS中只能使用它。它被称为URL重写和重定向。
希望这有帮助。