You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用.htaccess将带.php?后缀的URL重定向为仅.php格式

解决方案

重写规则调整说明

你原有规则仅能匹配.php后携带路径分隔符/的场景,无法处理.php后缀后带查询参数的情况,以下是整合两项需求的完整配置:

RewriteEngine On

# 需求1:处理.php后携带路径的情况,重定向到仅保留.php路径
RewriteRule ^(.+\.php)/.*$ http://%{HTTP_HOST}/$1 [R=301,L]

# 需求1补充:处理.php后携带查询参数的情况,重定向后清空所有查询参数
RewriteCond %{QUERY_STRING} .+
RewriteRule ^(.+\.php)$ http://%{HTTP_HOST}/$1? [R=301,L]

# 原有secure路径跳转规则保留
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^/?secure/(.*) https://example.org$1 [R,L]

# 需求2:拦截所有不存在的URL访问
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ - [R=404,L]

规则生效说明

  • 前两段规则会自动把所有.php后带的路径、查询参数全部清理掉,301重定向到仅保留.php的纯净路径
  • 最后一段规则会校验所有请求对应的文件/目录是否真实存在,不存在的请求直接返回404状态码拦截
  • 如果需要对.php后缀后带内容的请求直接拦截而非重定向,可把前两段重定向规则替换为以下规则:
# 直接拦截.php后缀后带任何内容的请求
RewriteRule ^.+\.php/.+ - [R=403,L]
RewriteCond %{QUERY_STRING} .+
RewriteRule ^.+\.php$ - [R=403,L]

内容的提问来源于stack exchange,提问作者Stackmenow

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 17:27:04