htaccess 404 redirect适用于.html扩展名,但不适用于.php扩展名

时间:2013-04-17 17:52:13

标签: php html .htaccess http-status-code-404 file-extension

我已经制作了一个自定义404页面并插入了我的htaccess文件中:

ErrorDocument 404 /404.php

每当我测试没有扩展名或.html扩展名的网址时,错误直接正常。但是,当我输入一个扩展名为.php的网址时,会显示一个空白页面,其中包含消息"未指定输入文件。"弹出。

我还需要做些什么才能为.php文件扩展名弹出自定义404页面?

2 个答案:

答案 0 :(得分:1)

您需要设置目录

RewriteEngine on
ErrorDocument 404 http://www.yoursite.com/404.php

如果您的当地人喜欢这个

RewriteEngine on
ErrorDocument 404 directory/404.php

答案 1 :(得分:1)

当PHP在服务器中编译为CGI Binary时会发生这种情况。在这种情况下,即使您定义了apache 404,PHP的请求也会传递给CGI binary,这会在找不到要处理的文件时出现此错误(No input file specified)。 / p>

此问题的解决方案将根据各种其他配置参数而有所不同,但基本上您应该尝试做的是首先检查URL,如果它不存在,请将其转换为非php网址,以便规则踢出并显示正确的404.

未经测试,但有以下内容:

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
RewriteRule ^.+\.php$ /non_existant_file