我的几个网站都托管在共享服务器上。我的网站空间的文件夹结构和域分配如下所示:
directory assigned domain
-------------------------------------
/ x8967397.my-provider.com (default domain)
/dir_1/ www.my-first-domain.com = x8967397.my-provider.com/dir_1/
/dir_2/ www.my-second-domain.com = x8967397.my-provider.com/dir_2/
域x8967397.my-provider.com
是托管计划随附的默认域。它始终指向我的Web空间的根目录,并且无法关闭或设置为另一个文件夹。结果是可以通过请求www.my-first-domain.com
来访问URL为x8967397.my-provider.com/dir_1/
的网站。也就是说,两个URL向访问者显示相同的网站。
我想阻止对默认域(x8967397.my-provider.com
)的访问,包括所有文件和目录(例如x8967397.my-provider.com/file.html
和x8967397.my-provider.com/dir_1/
),而不阻止其他域(例如{ {1}}),但不知道如何。如果我使用www.my-first-domain.com
阻止访问htaccess中的根文件夹,则所有域都将无法访问。
如何告诉我的Web服务器禁止对某个域(在这种情况下为默认域)的请求?
基本上是这样的:
Deny from all
编辑
文件夹<URL "x8967397.my-provider.com">
Deny from all
</URL>
和/dir_1/
中有.htaccess文件,它们是自定义域dir_2
和www.my-first-domain.com
的根文件夹。以下是其中之一的.htaccess文件中的重写规则:
www.my-second-domain.com
答案 0 :(得分:0)
您可以使用以下内容:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^x8967397\.my-provider\.com$ [NC]
#exclude root dirs
RewriteCond ℅{REQUEST_URI} !^/[^/]+/?$
#exclude homepage
RewriteCond ℅{REQUEST_URI} !^/$
#forbid all other requests
RewriteRule ^.*$ - [F,L]
如果您访问根/
和根目录/foo/
以及您所在域的文件,即http://x8967397.my-provider.com/foo/
将返回HTTP 403错误,这将返回403禁止错误。