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

.htaccess配置后无法获取$_GET['id']的问题求助

解决display/1无法传递id参数的问题

看起来你的问题出在RewriteRule的路径匹配和.htaccess的位置不匹配上——毕竟你的display.php是放在resources文件夹里的,咱们一步步来解决:

第一步:确认.htaccess的位置

.htaccess的位置直接决定了规则的路径匹配逻辑,分两种情况处理:

情况1:.htaccess放在网站根目录(domain.com/.htaccess)

此时你的目标URL是domain.com/resources/display/1,规则需要匹配完整的路径前缀,修改后的.htaccess应该是:

RewriteEngine on
RewriteRule ^resources/display/([0-9]+)$ resources/display.php?id=$1 [L]

解释:^resources/display/([0-9]+)$ 精确匹配以resources/display/开头、后面跟数字的URL,然后重写到对应的display.php文件并传递id参数;[L]标志表示这是最后一条规则,避免后续规则干扰。

情况2:.htaccess放在resources文件夹(domain.com/resources/.htaccess)

此时规则是相对于resources文件夹的,只需要匹配display/数字的路径即可,修改后的.htaccess:

RewriteEngine on
RewriteRule ^display/([0-9]+)$ display.php?id=$1 [L]

这样访问domain.com/resources/display/1就会正确映射到同文件夹下的display.php?id=1。

第二步:排查常见的生效障碍

如果修改后还是不行,检查这几个点:

  • 确认Apache的mod_rewrite模块已经启用:可以通过phpinfo()查看,或者联系主机商确认
  • 确保网站根目录(或者resources文件夹)的Apache配置里设置了AllowOverride All,否则.htaccess的规则会被忽略
  • 清除浏览器缓存,或者用隐私模式访问,避免旧的缓存URL干扰
  • 检查是否有其他Rewrite规则和当前规则冲突,比如前面的规则已经改写了路径

测试的时候,直接访问目标URL,然后在display.php里用var_dump($_GET['id'])来确认参数是否传递成功,这样更容易排查问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:42:35