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] 中有错误,但我不知道如何解决。会有人帮忙吗?
答案 0 :(得分:0)
默认情况下,- [R=404]
将未找到的请求重定向到Web托管服务提供商的默认错误页面。您可以将自定义错误页面的Uri用作规则中的替换字符串,以更改此行为。
# Redirect to 404 if original request is .php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* /my404.php [L,R]