我正在使用Directnic托管多个网站。 Directnic与许多主机一样,要求将每个网站都放置在/home/<user>/public_html
目录下。这可行。我的问题是可以从“主”域访问某些网站。
以下是我的配置示例...
one.com
与托管计划相关,并直接存储在public_html
中。
two.com
被设置为附加域,并存储在public_html/two
中。
three.com
也被设置为插件域,并存储在public_html/three
中。
这一切都按预期工作,所有三个网站都显示三个不同的网站,并且都具有三个不同的文档根目录,因此一切正常。
我的问题是我可以通过转到two.com
等来访问three.com
和http://one.com/two/
的文件,我不希望这样,我希望它们更加隔离
我可以对one.com
隐藏这些文件的哪些配置?
我的主机使用Apache和cPanel,但是我无权访问特定的conf文件,因此无法创建虚拟主机。也许有些.htaccess骗术?
答案 0 :(得分:1)
这是cPanel的工作方式。您无法100%隔离它,也无法获得添加虚拟主机条目的配置访问权限。它正在由您的服务提供商进行管理。
您当然可以限制对HTTP的访问。您可以在子文件夹中添加重写规则(在上面的示例两个文件夹和三个文件夹中)。您可以尝试使用以下.htaccess重写规则来防止从主域直接访问:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(www.)?maindomain.com$ [NC]
RewriteCond %{REQUEST_URI} ^/addon1/(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^/addon2/(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^/addon3/(.*)$
RewriteRule ^(.*)$ - [L,R=404]
添加以上规则后,您的主域将无法使用HTTP访问附加文件夹。它应该显示404错误页面。