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

htaccess错误页面跳转异常:路径带斜杠与不带斜杠表现不一致

问题根源

你当前配置的重写规则存在两个逻辑缺陷,恰好匹配你遇到的异常表现:

  • 所有RewriteRule未添加[L]标记,且未判断重写目标的PHP文件是否真实存在:当访问example.com/test/时,第一条规则会直接将请求重写为test.php,如果站点根目录下不存在test.php文件,Apache会直接返回默认的「File not found」响应,不会触发你配置的自定义404页面。
  • PHP版本更新后Apache的mod_rewrite模块处理优先级发生变化,此前可能未触发该逻辑漏洞。

修复方案

将.htaccess中的代码替换为以下内容即可:

<Files .htaccess>
order allow,deny
deny from all
</Files>

RewriteEngine On
# 仅当对应的php文件存在时才执行重写
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/$ $1.php [L]

RewriteCond %{DOCUMENT_ROOT}/$1/$2.php -f
RewriteRule ^([^/]+)/([^/]+)/$ /$1/$2.php [L]

RewriteRule sample/(.*)/(.*)/$ /sample.php?$1=$2 [L]

ErrorDocument 400 /400.php
ErrorDocument 401 /401.php
ErrorDocument 403 /403.php
ErrorDocument 404 /404.php
ErrorDocument 410 /410.php

验证逻辑

修改后再次访问example.com/test/,如果test.php不存在会直接跳转至你配置的自定义404页面,符合预期;如果对应PHP文件存在则正常加载页面,不影响原有正常功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 22:45:05