使用 cPanel 和插件域时 htaccess 如何工作

Posted

技术标签:

【中文标题】使用 cPanel 和插件域时 htaccess 如何工作【英文标题】:How does htaccess work when using cPanel and addon domains 【发布时间】:2013-01-09 17:26:39 【问题描述】:

当您拥有 cPanel 托管并使用插件域时,这些域“位于”public_html 文件夹内的文件夹中(默认情况下),例如:

A) public_html/.htaccess
B) public_html/addondomain_1/.htaccess
C) public_html/addondomain_2/.htaccess

我的理解是,我放入 htaccess 文件 A) 中的任何内容都适用于其中的所有内容,其中应包括 B) 和 C)。

因此,例如,将被阻止的 IP 地址添加到 A) 也会在 B) 和 C) 上被阻止。

但我查询这个纯粹是因为 B) 和 C) 在浏览器中查看时是不同的域。我已尝试对其进行测试,但运气不佳,并且浏览了几页文档并没有帮助我得出结论。

如果我在 A) 中阻止某人的 IP,它会阻止他们访问 B) 和 C) 网站吗?

【问题讨论】:

【参考方案1】:

Apache docs 很清楚:

.htaccess 文件中的配置指令适用于 .htaccess 文件所在的目录及其所有子目录。然而,重要的是还要记住在更高的目录中可能有 .htaccess 文件。指令按照它们被发现的顺序应用。因此,特定目录中的 .htaccess 文件可能会覆盖目录树中较高位置的 .htaccess 文件中的指令。反过来,那些可能已经覆盖了更高层或主服务器配置文件本身的指令。

这是 Apache 的功能,而不是 cPanel 的功能。是否使用 cPanel 并不重要 — Apache 仍将遍历父目录并应用它们的 .htaccess 指令。

【讨论】:

所以如果我在 A) 中阻止某人的 ip,它会阻止他们访问网站 B) 和 C)? 只要它们的文档根目录是您的.htaccess 文件所在目录的子目录,就可以。 但是请注意,如果您在父目录中使用 mod_rewrite(如果您正在阻止 IP,则可能是这样)并且您在插件中使用 mod_rewrite域的 .htaccess 文件,那么您将需要显式指定 RewriteOptions Inherit(在插件域中)以继承/处理父目录 mod_rewrite 指令。

以上是关于使用 cPanel 和插件域时 htaccess 如何工作的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的 .htaccess 文件在 cPanel 中不起作用?

apache htaccess 在带有 cpanel/whm 的子目录中

如何更改 cPanel 的在线文件管理器 (ByetHost) 上的 .htaccess?

在 cpanel 中出现关于 htaccess 权限的错误

使用 htaccess 将所有 https://www.mydomain.com 重定向到 https://mydomain.com(cpanel 中的 2 SSL HOST)[重复]

.htaccess 如何为 public_html cpanel 工作