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

ErrorDocument 404/404.php在php中的.htaccess文件中不起作用,php,apache,.htaccess,mod-rewrite,Php,Apache,.htaccess,Mod Rewrite,我在根目录中有一个.htaccess文件,还有404.php文件。我的.htaccess文件的内容是: ErrorDocument 404 /404.php 但是当我拼写错误我的url时,404.php不会打开。相反,我得到了以下信息: 找不到 在此服务器上找不到请求的URL/mywebsite/ites.php 此外,在尝试查找时遇到404 Not Found错误 使用ErrorDocument来处理请求 但是,当我尝试errordocument404 google.com时,它成功了。相

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

ErrorDocument 404 /404.php 
但是当我拼写错误我的url时,
404.php
不会打开。相反,我得到了以下信息:

找不到

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


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


但是,当我尝试
errordocument404 google.com
时,它成功了。

相对于
.htaccess
文件,您的
404.php
实际位于哪里?您可以简单地将其作为直接URL运行吗?服务器是否可以读取该文件?还是在嵌套的子目录中?您也可以尝试完整的URL:

ErrorDocument 404 http://mygreat.server/404.php 

详细信息请参见。

我将把我的评论合并到以下答案中:

设置时

ErrorDocument 404 /404.php
/404.php
路径可能不是htdocs文件夹根的绝对路径,而是文件系统的根。这可能取决于您的配置,例如
/home/htdocs/
~

因此,我们需要做的是找出绝对路径并进行相应设置。

您可以这样使用:

ErrorDocument(例如“404”)

您有三种类型的
,由您键入的内容触发:

  • 如果操作以“/”开头:则为要重定向到的本地路径
  • 如果操作是有效的URL:要重定向到的外部URL
  • 如果以上两种情况都不存在:将显示文本。(如果文本由多个单词组成,则必须用引号(“”)括起来。)
  • 例如:

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

    外部URL
    errordocument404http://external_url.example.com/server_error.html

    自定义文本
    errordocument404“哎呀!我们找不到那个讨厌的文件。对不起。”

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


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

    尝试使用ErrorDocument时遇到404 Not found错误-因此,您的404.php是404!检查日志以查看apache在哪里查找您的404.php您需要
    404.php
    的绝对路径,例如
    /home/web/404.php
    实际上,它确实有效。我的.htacces中正好有这一点,而且效果很好:
    ErrorDocument 404/404.html
    抱歉:这是对您的回复above@SteveHorvath-事实上,它很久以前就开始工作了。但是当我今天尝试它时,它不起作用。你检查了访问/错误日志了吗,apache在找什么/在哪里?ErrorDocument 404 404.php只是在浏览器上打印404.php。正如我问题的第一行所说,我在根目录上有.htaccess和404.php,几天前它也对我起作用。但令我惊讶的是,我不知道为什么它今天不起作用。我不想给出绝对路径。其他信息:ie需要自定义错误页>512字节。这里的细节