Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
删除.htaccess中的文件中的.php(如果该文件不存在,则将用户重定向到自定义404页面)_Php_Apache_.htaccess_Mod Rewrite_Redirect - Fatal编程技术网

删除.htaccess中的文件中的.php(如果该文件不存在,则将用户重定向到自定义404页面)

删除.htaccess中的文件中的.php(如果该文件不存在,则将用户重定向到自定义404页面),php,apache,.htaccess,mod-rewrite,redirect,Php,Apache,.htaccess,Mod Rewrite,Redirect,拜托,我需要一个快速解决方案 我已经完成了一个站点,我使用.htaccess重写URL以删除.php,我只打算删除已知的文件,即如果我有about.php,那么我可以有/about它可以很好地处理以下.htaccess行 Options -MultiViews RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*

拜托,我需要一个快速解决方案

我已经完成了一个站点,我使用
.htaccess
重写URL以删除
.php
,我只打算删除已知的文件,即如果我有
about.php
,那么我可以有
/about
它可以很好地处理以下
.htaccess

Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L]
现在我创建了另一行来处理自定义
404
错误

ErrorDocument 404 /404.html
现在问题来了,我在导航到未知文件而不是重定向到404时出现
500内部服务器错误

阿帕奇重写不知何故是挥舞,所以我只是没有时间了,请任何帮助


感谢您的期待

您应该能够在不使用.php的情况下进入页面,因此如果您想要一个头文件或配置文件,只需在会话结束后将此代码放在顶部即可。您可以删除重写规则

if (substr($_SERVER['REQUEST_URI'], -4) === '.php') {
    require '404.php';
}

回答得很好。只需在信息上再扩展一点。。因此,它改进了路由,而不是.htaccess.So中的一个包罗万象的头文件在哪里,我没有使用框架,我只是想重定向并删除文件前面的.php,然后将其他文件发送到404。。。。所以在我看来这是行不通的,因为我必须做一些事情,比如将所有请求路由到一个文件,然后从该文件构建一个路由器系统。。。我没有时间做那件事,工作已经完成了