如何将 public_html 下的附加域与主域隔离?
How can I isolate addon domains under public_html from the main domain?
我正在使用 Directnic 托管多个网站。 Directnic 和许多主机一样,要求每个网站都放在 /home/<user>/public_html
目录下。这行得通。我的问题是某些网站可以从 "main" 域访问。
这是我的配置示例...
one.com
绑定到托管计划,并直接存储在 public_html
。
two.com
设置为附加域并存储在 public_html/two
.
three.com
也被设置为附加域并存储在 public_html/three
.
这一切都按预期工作,所有三个网站都显示三个不同的网站,并且都有三个不同的文档根目录,因此一切正常。
我的问题是我可以通过 http://one.com/two/
等访问 two.com
和 three.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 错误页面。
我正在使用 Directnic 托管多个网站。 Directnic 和许多主机一样,要求每个网站都放在 /home/<user>/public_html
目录下。这行得通。我的问题是某些网站可以从 "main" 域访问。
这是我的配置示例...
one.com
绑定到托管计划,并直接存储在public_html
。two.com
设置为附加域并存储在public_html/two
.three.com
也被设置为附加域并存储在public_html/three
.
这一切都按预期工作,所有三个网站都显示三个不同的网站,并且都有三个不同的文档根目录,因此一切正常。
我的问题是我可以通过 http://one.com/two/
等访问 two.com
和 three.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 错误页面。