.htaccess 文件找不到 404 ErrorDocument

Posted

技术标签:

【中文标题】.htaccess 文件找不到 404 ErrorDocument【英文标题】:.htaccess file can't find 404 ErrorDocument 【发布时间】:2013-01-04 01:06:45 【问题描述】:

我拥有的 .htaccess 文件无法在名为“error”的子文件夹中找到我的 404.html 文档。特别是:

ErrorDocument 404 /error/404.html

但是,如果我将 404.html 放在与 .htaccess 相同的目录中并将行更改为:

ErrorDocument 404 /404.html --- 有效!

如果有帮助,我正在使用 XAMPP for Windows,并且在我的 httpd.conf 文件中,相关指令设置如下(我意识到存在一些冗余):

<Directory />
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

<Directory "C:/xampp/htdocs">
    Options Indexes FollowSymLinks Includes ExecCGI MultiViews
    AllowOverride All
    Require all granted
</Directory>

另外,我的 DocumentRoot 设置为“C:/xampp/htdocs”,并且我尝试了各种路径来访问“错误”目录--无济于事:

ErrorDocument 404 /error/404.html
ErrorDocument 404 /flchi/error/404.html
ErrorDocument 404 /sites/flchi/error/404.html
ErrorDocument 404 /htdocs/sites/flchi/error/404.html

哦,最后一件事是值得的——我正在使用虚拟主机。以下是相关位:

<VirtualHost *>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
    ServerAlias localhost
    <Directory "C:/xampp/htdocs">
        Options Indexes FollowSymLinks Includes ExecCGI
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost flchi.local>
    DocumentRoot "C:/xampp/htdocs/sites/flchi"
    ServerName flchi.local
    ServerAlias flchi.local
    <Directory "C:/xampp/htdocs/sites/flchi">
        Options Indexes FollowSymLinks Includes ExecCGI
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

【问题讨论】:

您尝试使用的文件404.html 的绝对路径是什么,您的.htaccess 在哪个目录中? 404.html的绝对路径:“C:/xampp/htdocs/sites/flchi/error/404.html”。 .htaccess 所在的目录是:/flchi. 【参考方案1】:

发生这种情况是因为命名冲突 - 默认 Apache 配置已经为 /error 定义了虚拟路径,这会影响全局的所有虚拟主机。它在配置文件xampp/apache/conf/extra/httpd-multilang-errordoc.conf 中完成。位置 /error,因此会影响您的 /error 子目录:

  Alias /error/ "C:/xampp/apache/error/"

如果您将“错误”子目录重命名为其他名称,它应该可以工作 - 例如,error2

   ErrorDocument 404 /error2/404.html

【讨论】:

宾果游戏,就是这样!我将目录更改为“站点错误”并且一切正常!谢谢!

以上是关于.htaccess 文件找不到 404 ErrorDocument的主要内容,如果未能解决你的问题,请参考以下文章

404 - 找不到文件或目录 是怎么回事?

错误 404:在 Gitlab 中找不到文件

找不到对象!;错误 404

ASP.Net Core“找不到此本地主机页面”HTTP ERROR 404

htaccess 文件不会带我进入 404 错误页面

NextJS 部署到 Vercel:找不到 404 页面