如何使用.htaccess将带参数动态URL重写为静态友好路径
.htaccess URL重写配置方案
前置检查
- 确认Apache服务器已启用
mod_rewrite模块 - 确认站点配置中对应站点目录的
AllowOverride参数设置为All,否则.htaccess规则不会生效
完整配置规则
将以下内容写入站点根目录的.htaccess文件即可:
RewriteEngine On # 旧动态URL永久重定向到新静态格式,避免搜索引擎重复收录 RewriteCond %{QUERY_STRING} ^games=([^&]+) RewriteRule ^game\.php$ /game/%1/? [L,R=301] # 内部静默重写,新格式URL映射到实际PHP文件处理,用户访问无感知 RewriteRule ^game/([^/]+)/?$ /game.php?games=$1 [L]
规则说明
- 第一条规则末尾的
?作用是清除原URL的查询参数,避免跳转后的新地址尾部额外带上?games=xxx - 正式上线使用
R=301永久重定向,测试阶段可先改为R=302临时重定向,避免浏览器缓存错误规则 [L]标识匹配到当前规则后停止匹配后续规则,避免和其他规则冲突- 配置完成后清理浏览器缓存再测试,避免301重定向的本地缓存影响验证结果
内容的提问来源于stack exchange,提问作者Nemeth David
相关产品推荐
相关产品推荐

