我在托管情况下工作,我的主 webroot 位于 ~/www
.我在 ~/www/__subdomains
中托管了几个子域.在主 webroot 中,我有一个 .htaccess
文件做了一些小的重写。在我的两个子域中,我有类似的 .htaccess
文件和这些子域正确响应。
在另外 2 个新创建的子域中,我有 .htaccess
空文件保存为 AddHandler
指示。我发现的是根 .htaccess
文件的存在/内容影响这 2 个子域。他们抛出 500 错误。一旦我重命名那个,损坏的子域就会起作用。
当然,这会破坏其他站点,因此我不能将其移开,但这违反了我对 .htaccess
的理解。递归工作。我以为只要有.htaccess
子目录中的文件,祖先目录中的文件永远不会被执行。
显然,我错了,所以我希望有人可以教育我并帮助我解决这个问题。
谢谢。
最佳答案
.htaccess
文件从当前目录向上应用,在主配置处停止。当前目录的 .htaccess
中的任何规则和指令文件,取代在评估 .htaccess
时发现的任何其他规则进一步向上。
但是,正如您发现的那样,问题在于未明确覆盖的规则是从其他文件中应用的。您可以引用 Apache .htaccess Tutorial进一步解释,特别是 如何应用指令 部分。
希望有帮助。
关于apache - htaccess 递归是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5903260/