.htaccess - Htaccess:删除 .php 并重定向到自定义 404 页面
问题描述
访问:
# 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]中有一个错误,但我不知道如何修复它。有人会帮忙吗?
解决方案
默认情况下 - [R=404]
,将未找到的请求重定向到 Web 托管服务提供商的默认错误页面。您可以使用自定义错误页面的 Uri 作为规则中的替换字符串来更改此行为。
# Redirect to 404 if original request is .php
RewriteCond %{THE_REQUEST} "^[^ ]* .*?\.php[? ].*$"
RewriteRule .* /my404.php [L,R]
推荐阅读
- javascript - 如何将单个样式传递给 React 中的组件?
- javascript - 从表单/选择中检索数据的问题
- sql-server - 有没有办法将数据库从 Visual Studio 导入 SQL Server?
- python - Errno 2 没有这样的文件或目录:'/tmp/tmp3v35kv5z.upload.pdf'
- python - Python np.select 不遵守我的条件,为什么?
- python - 在 Python 3.7 中将嵌套的 JSON 转换为 CSV
- c++ - 为什么在尝试这样的类代码时会出错?我是初学者对不起
- html - 在 div 内缩放元素,并使溢出可滚动 - HTML
- javascript - 节点:允许长任务中的事件循环并返回
- performance - 为什么文件的数量会影响很大的删除速度?