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:
ErrorDocument <3-digit-code> <action>
这<3-digit-code>是一个HTTP 响应状态代码(例如“404”)。
您可以<action>通过键入的内容触发三种类型:
例如:
本地路径:
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错误,并且您的服务器找不到。