如何通过.htaccess重写PHP站点URL 解决带参路径转静态路径404问题
.htaccess URL重写规则排查与修正方案
现有配置错误原因
- 目标路径为相对路径:你配置的重写目标
users.php没有指定上层路径,Apache收到/admin/users/<id>的请求时,会在/admin/users/目录下查找users.php文件,文件不存在所以返回404。 - 规则冗余:两条分别匹配带尾斜杠、不带尾斜杠的规则可以合并为一条,不需要分开编写。
- 缺少必要前置配置:未显式开启重写引擎、设置重写基准,可能导致规则不生效。
完整正确配置
将以下内容写入你站点根目录的.htaccess文件即可:
# 开启重写引擎 RewriteEngine On # 设置重写基准为站点根目录 RewriteBase / # 合并匹配带/不带尾斜杠的用户ID路径,重写到实际接口 RewriteRule ^admin/users/([a-zA-Z0-9_-]+)/?$ /admin/users.php?userid=$1 [L]
生效验证注意事项
- 确保你的Apache服务已经开启
mod_rewrite模块。 - 确保站点配置中的
AllowOverride参数设置为All,否则.htaccess文件不会被加载生效。 - 如果站点部署在二级子目录下,需要将
RewriteBase /修改为对应的子目录路径,例如部署在/site目录下则改为RewriteBase /site/。
内容的提问来源于stack exchange,提问作者Harrison
相关产品推荐
相关产品推荐

