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

请求解决.htaccess规则问题:访问staff路径跳转PHP文件失败

解决.htaccess中staff目录下无后缀URL跳转至对应PHP文件的问题

你的规则失效主要是因为缺少对目标PHP文件存在性的检查,以及没有排除已存在的文件/目录干扰,以下是修正后的方案:

方案1:内部重写(地址栏保持无后缀)

用户访问example.com/staff/my_boss时,服务器内部处理为my_boss.php,地址栏不会变化:

RewriteEngine On
RewriteBase /

# 排除已存在的文件和目录,避免无效重写
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# 仅当对应的PHP文件存在时执行重写
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^staff/([^/]+)$ /staff/$1.php [L]

方案2:外部跳转(地址栏显示.php后缀)

如果需要让用户地址栏明确显示.php后缀,可添加R=301实现永久跳转:

RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^staff/([^/]+)$ /staff/$1.php [L,R=301]

关键说明

  1. 文件存在性检查:RewriteCond %{REQUEST_FILENAME}.php -f确保只有当my_boss.php这类文件真实存在时,才执行重写操作,避免因访问不存在的路径导致404。
  2. 排除已存在资源:RewriteCond %{REQUEST_FILENAME} !-f和!-d是为了防止规则对已存在的静态文件(如图片、CSS)或目录生效,避免不必要的重写冲突。
  3. 关闭MultiViews:如果你的服务器开启了mod_negotiation模块的MultiViews功能,可能会干扰重写规则。可以在.htaccess开头添加Options -MultiViews来禁用该功能,确保规则优先生效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:42:15