ErrorDocument 404 /404.php在PHP中的.htaccess文件中不起作用

21 php apache .htaccess mod-rewrite

.htaccess在根目录中有一个文件,还有404.php文件.我的.htaccess文件内容是:

ErrorDocument 404 /404.php 
Run Code Online (Sandbox Code Playgroud)

但是当我错误地拼写我的网址时,404.php却没有打开.相反,我收到以下消息:

未找到

在此服务器上找不到请求的URL /mywebsite/ites.php.

此外,尝试使用ErrorDocument处理请求时遇到404 Not Found错误.

但是当我尝试时ErrorDocument 404 google.com,它起作用了.

con*_*uxe 18

我会将我的评论整合到这个答案中:

设置时......

ErrorDocument 404 /404.php
Run Code Online (Sandbox Code Playgroud)

/404.php路径可能不是绝对路径的htdocs文件夹的根,而是你的文件系统的根目录.这可能是基于您的配置,例如/home/htdocs/~等等.

所以我们需要做的是找出绝对路径并相应地设置它.


Jak*_*uld 16

您的404.php实际位置与您的.htaccess文件有何关系?您可以直接将其作为直接URL运行吗?文件是否可由服务器读取?或者它是否在嵌套的子目录中?您也可以尝试完整的URL:

ErrorDocument 404 http://mygreat.server/404.php 
Run Code Online (Sandbox Code Playgroud)

这里官方Apache文档的完整细节.

  • ErrorDocument 404 404.php只是在浏览器上打印404.php. (4认同)

Chu*_*utt 5

你像这样使用ErrorDocument

ErrorDocument <3-digit-code> <action>

<3-digit-code>是一个HTTP 响应状态代码(例如“404”)。

您可以<action>通过键入的内容触发三种类型:

  1. 如果操作以“/”开头:要重定向到的本地路径。
  2. 如果操作是有效的 URL:要重定向到的外部 URL。
  3. 如果以上都不是:要显示的文本。(如果文本包含多个单词,则必须用引号 (" ") 括起来。)

例如:

本地路径ErrorDocument 404 /local/path/to/404.php

外部网址ErrorDocument 404 http://external_url.example.com/server_error.html

自定义文本ErrorDocument 404 "Oops! We can't find that pesky file. Sorry."

您选择了一个本地路径,但从服务器的角度来看可能没有正确指向文件。请注意,本地服务器路径不是您在 URL 中看到的内容,通常包括~/htdocs/www/domainname/.

问题很可能是您的路径404.php错误,并且您的服务器找不到。