我在根目录中有一个.htaccess
文件,还有404.php文件。我的.htaccess
文件的内容是:
ErrorDocument 404 /404.php
但是当我错误拼写我的网址时,404.php
没有打开。相反,我收到以下消息:
未找到
在此服务器上找不到请求的网址/mywebsite/ites.php。
此外,尝试时遇到404 Not Found错误 使用ErrorDocument来处理请求。
但是当我尝试ErrorDocument 404 google.com
时,它确实有效。
答案 0 :(得分:17)
我会将我的评论合并到这个答案:
设置时......
ErrorDocument 404 /404.php
/404.php
路径可能不是htdocs文件夹根目录的绝对路径,而是文件系统的根目录。根据您的配置,这可能是/home/htdocs/
或~
等等。
所以我们需要做的是找出绝对路径并相应地设置它。
答案 1 :(得分:15)
404.php
与.htaccess
文件相关的实际位置在哪里?您可以直接将其作为直接URL运行吗?文件是否可由服务器读取?或者它是否在嵌套的子目录中?您也可以尝试使用完整的网址:
ErrorDocument 404 http://mygreat.server/404.php
答案 2 :(得分:1)
您像这样使用ErrorDocument:
ErrorDocument <3-digit-code> <action>
您可以通过键入的内容触发三种类型的操作:
该动作将被视为:
例如。
自定义文字:
ErrorDocument 404 "Oops! We can't find that pesky file. Sorry."
本地路径:
ErrorDocument 404 /local/path/to/404.php
外部URL :
ErrorDocument 404 http://external_url.example.com/server_error.html
您已经选择了本地文件,但是从服务器的角度看,可能未正确链接。本地服务器路径不是您在URL中看到的路径,通常包含~/htdocs/www/domainname/
之类的内容。
问题很可能是您指向404.php
的路径错误,服务器无法找到。
答案 3 :(得分:0)
嘿,您可以从以下位置更改httpd.conf中的某些设置:-
<Directory />
AllowOverride none
Require all denied
</Directory>
至:-
<Directory />
AllowOverride All
Require all denied
</Directory>
您可以使用
ErrorDocument 404 /404.php
在htaccess中