htaccess:删除.php并重定向到自定义404页面

时间:2018-07-05 11:42:09

标签: .htaccess

htaccess:

# Remove .php extension
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php

# Redirect to 404 if original request is .php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* - [L,R=404]

这有效,并且所有请求都重定向到自定义404页面,例如:

localhost/dashboard.html
localhost/dashboard.gg
localhost/dashboard.anything

但是.php重定向到默认的404页面,而不是我的自定义404页面

localhost/dashboard.php => default 404 page by apache

我知道 [R = 404] 中有错误,但我不知道如何解决。会有人帮忙吗?

1 个答案:

答案 0 :(得分:0)

默认情况下,- [R=404]将未找到的请求重定向到Web托管服务提供商的默认错误页面。您可以将自定义错误页面的Uri用作规则中的替换字符串,以更改此行为。

# Redirect to 404 if original request is .php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* /my404.php  [L,R]