如何将 public_html 下的附加域与主域隔离?

How can I isolate addon domains under public_html from the main domain?

我正在使用 Directnic 托管多个网站。 Directnic 和许多主机一样,要求每个网站都放在 /home/<user>/public_html 目录下。这行得通。我的问题是某些网站可以从 "main" 域访问。

这是我的配置示例...

  1. one.com 绑定到托管计划,并直接存储在 public_html

  2. two.com 设置为附加域并存储在 public_html/two.

  3. three.com 也被设置为附加域并存储在 public_html/three.

这一切都按预期工作,所有三个网站都显示三个不同的网站,并且都有三个不同的文档根目录,因此一切正常。

我的问题是我可以通过 http://one.com/two/ 等访问 two.comthree.com 的文件,我不想要这个,我希望它们是更孤立。

我可以进行哪些配置来对 one.com 隐藏这些文件?

我的主机使用 Apache 和 cPanel,但我无权访问特定的 conf 文件,因此无法创建虚拟主机。也许是一些 .htaccess 诡计?

这就是 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]

添加上述规则后,您的主域将无法使用 g HTTP 访问插件文件夹。它应该显示 404 错误页面。