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

使用htaccess配置Rewrite engine不生效访问报404问题求助

问题原因及修复方案

你当前的URL重写规则存在正则匹配范围缺陷,加上部分配置项缺失,是触发404的核心原因:

  1. 原有规则^p/([a-z0-9])$的分组仅匹配单个小写字母/数字,只要你的pid长度≥2就会匹配失败,直接返回404
  2. 缺失必要的规则标记,也没有做路径兼容,服务器路径层级不对时也会匹配失败

修复后的完整配置

RewriteEngine on
# 如站点部署在二级目录(例如 domain.com/shop/),取消下面一行的注释并修改为对应目录名
# RewriteBase /shop/
RewriteRule ^p/([a-z0-9]+)$ product1.php?pid=$1 [NC,QSA,L]

新增配置说明:

  • 正则末尾新增+,匹配1位及以上的字母/数字,兼容不同长度的pid
  • NC标记:忽略大小写,匹配/P/123这类大写路径
  • QSA标记:如果原访问地址带额外查询参数(例如/p/123?source=search),会自动附加到重写后的地址上
  • L标记:匹配到当前规则后停止执行后续重写规则,避免规则冲突

附加排查项

如果修改规则后依然返回404,依次检查以下配置:

  • 确认Apache已开启mod_rewrite模块,可通过phpinfo()查看已加载模块列表验证
  • 确认站点VirtualHost配置中,对应根目录的AllowOverride参数设置为All,否则.htaccess文件不会生效
  • 确认product1.php文件放在.htaccess文件的同级目录下,如果存放在子目录,需要修改重写路径为对应绝对路径,例如/subdir/product1.php?pid=$1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 05:27:04