使用 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?
使用 htaccess 将所有 https://www.mydomain.com 重定向到 https://mydomain.com(cpanel 中的 2 SSL HOST)[重复]