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

.htaccess RewriteRule参数问题:article/1/无法传递id参数

问题诊断与解决办法

可能原因1:存在同名文件/目录

如果www/intranet/目录下存在名为article的文件夹或文件(比如article.html、无后缀的article文件),Apache会优先访问这个实际存在的资源,跳过你的RewriteRule规则,导致article/1/的请求没触发参数传递。

解决办法:

  • 检查intranet目录,若有article相关资源,要么重命名该资源,要么保留你测试有效的test/article/路径规则。
  • 或在.htaccess中添加规则禁止目录自动跳转,确保重写优先执行:
RewriteEngine On
RewriteBase /intranet/

# 禁用目录自动补全斜杠与索引页
DirectorySlash Off
Options -Indexes

RewriteRule ^administration/profils/editer/(\d+)/?$ administration-profils-editer.php?id=$1 [L]
RewriteRule ^article/(\d+)/?$ article.php?id=$1 [L]

可能原因2:MultiViews选项开启

Apache的MultiViews(内容协商)如果开启,会自动将article这类无后缀请求匹配到article.php,但这个过程会跳过重写规则的参数传递逻辑,导致id参数丢失。

解决办法:

在.htaccess开头添加关闭MultiViews的配置:

Options -MultiViews
RewriteEngine On
RewriteBase /intranet/

RewriteRule ^administration/profils/editer/(\d+)/?$ administration-profils-editer.php?id=$1 [L]
RewriteRule ^article/(\d+)/?$ article.php?id=$1 [L]

验证方法

修改配置后,可在article.php中添加var_dump($_GET);代码,访问article/1/查看是否能输出包含id=1的数组,确认参数传递成功。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 18:02:38