禁止在共享托管上向某个域发送请求?

时间:2018-12-09 12:30:11

标签: .htaccess shared-hosting

我的几个网站都托管在共享服务器上。我的网站空间的文件夹结构和域分配如下所示:

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.htmlx8967397.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_2www.my-first-domain.com的根文件夹。以下是其中之一的.htaccess文件中的重写规则:

www.my-second-domain.com

1 个答案:

答案 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禁止错误。