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

如何通过.htaccess将URL中的GET参数替换为路径形式?

实现URL路径化替代GET参数的.htaccess配置

以下是修改后的完整.htaccess代码,既保留移除.php扩展名的功能,又能将attractions?id=897236234234这类带GET参数的URL转换为attractions/32456789的路径形式:

RewriteEngine On

# 1. 重定向旧的带?id参数的URL到路径形式
RewriteCond %{THE_REQUEST} /attractions\.php\?id=(\d+) [NC]
RewriteRule ^ /attractions/%1 [R=307,L]

# 2. 移除.php扩展名的外部重定向
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule (.*) /%1 [R=307,L]

# 3. 处理路径形式的请求,转发到对应PHP文件并传递id参数
RewriteRule ^attractions/(\d+)$ attractions.php?id=$1 [L]

# 4. 内部转发无扩展名的请求到对应PHP文件
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php [L]

ErrorDocument 404 /error.php

规则说明

  • 规则1:匹配用户访问的attractions.php?id=xxx或已移除扩展名的attractions?id=xxx,通过307重定向到attractions/xxx,保证URL统一且避免重复内容。
  • 规则2:保留你原有的移除.php扩展名逻辑,处理其他不带参数的PHP页面。
  • 规则3:将attractions/xxx这种路径形式的请求,内部转发到attractions.php?id=xxx,后台正常处理参数,前端URL保持整洁。
  • 规则4:保留原有的无扩展名请求到PHP文件的转发逻辑,适配普通页面访问。

如果需要适配更多类似页面(比如events?id=xxx转events/xxx),复制规则1和规则3,替换attractions为对应页面名称即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 12:45:38