【问题标题】:Htaccess: remove .php and redirect to custom 404 pageHtaccess:删除 .php 并重定向到自定义 404 页面
【发布时间】:2018-07-05 11:42:08
【问题描述】:

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] 中有一个错误,但我不知道如何修复它。有人会帮忙吗?

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

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

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

    【讨论】:

    • 不行,还是会抛出默认的404页面
    • 好的,我已经从规则中删除了R=404 标志。尝试更新版本。
    猜你喜欢
    • 2016-11-21
    • 2014-12-23
    • 1970-01-01
    • 2012-10-01
    • 2018-04-18
    • 2013-06-09
    • 2011-12-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多