apache - htaccess 递归是如何工作的?

标签 apache .htaccess apache2

我在托管情况下工作,我的主 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/

相关文章:

html - 框架 .htaccess 时显示消息

android - Tomcat 7 服务器在 Eclipse 中不可见

.htaccess ModRewrite : Url was not found

php - Laravel 与子域共享主机

logging - 如何让 awstats 读取此日志格式?

.htaccess - "Spoofing".htaccess 未找到 404 错误

mysql - 使用 MySQL 进行 SVN 身份验证

php - 如何在 Centos 7 中为 php 8 配置 apache?

java 。工件部署 Tomcat 8 期间出错

.htaccess - 通过 htaccess 将所有 http 和 https 非 www URL 重定向到 https ://www. xyz.com