我已经做了一个自定义的404页面,并插入到我的htaccess文件:
ErrorDocument 404 /404.php
当我测试一个没有扩展名或。html扩展名的url时,错误直接工作正常。但是,当我输入一个扩展名为.php的url时,会弹出一个空白页面,提示"No input file specified."。
我要做什么,使我的自定义404页面弹出的。php文件扩展名,以及?
当PHP在服务器中被编译为CGI Binary
时,就会发生这种情况。在这种情况下,即使您定义了apache
404,对PHP的请求也会传递给CGI binary
,当没有找到要处理的文件(No input file specified
)时,会给出此错误。
这个问题的解决方案将根据各种其他配置参数而有所不同,但本质上你应该尝试做的是首先检查URL,如果它不存在,将其转换为非php URL,以便规则启动并显示正确的404。
未测试,但在以下行中有:
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^.+'.php$ /non_existant_file
您需要设置目录
RewriteEngine on
ErrorDocument 404 http://www.yoursite.com/404.php
如果你是本地的,那么像这样
RewriteEngine on
ErrorDocument 404 directory/404.php