1

我有一个域,其中包含多个站点,其中包含多个 .htaccess 文件(客户可以在他们自己的服务器上线之前检查他们自己的项目,因此每个 .htaccess 文件控制自己的站点)。

如果我在根目录中有一个 .htaccess 文件,它将控制域。如果输入了 mydomain.com/doesntexist 并且它不存在,就会出现 root 的 404 页面。如果输入 mydomain.com/doesexist/doesntexist,“doesexist”目录中的 .htaccess 文件将优先,而不是根目录的 .htaccess 文件……对吗?

4

1 回答 1

1

你是对的。
我建议您阅读Apache HTTP 服务器教程:.htaccess 文件

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


ROOT htaccess

ErrorDocument 404 /index.php

子文件夹 htaccess

ErrorDocument 404 /subfolder/index.php

http://domain.com/does_not_exist --> (404 错误) /index.php
http://domain.com/subfolder/does_not_exist --> (404 错误) /subfolder/index.php

于 2014-12-30T17:19:11.657 回答