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

如何将PHP带参数动态URL转为路径格式的Smart URL友好链接

解决方案

你需要在原有移除.php后缀的规则基础上,新增针对profile路径参数的重写规则,完整的.htaccess配置如下:

RewriteEngine On

# 处理profile路径的参数映射
RewriteRule ^profile/([0-9a-zA-Z_-]+)$ profile.php?id=$1 [QSA,L]

# 原有移除.php后缀的规则
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA,L]

规则说明

  • 第一条新增的RewriteRule会匹配所有domain.com/profile/xxx格式的请求,其中([0-9a-zA-Z_-]+)是正则捕获组,可匹配由数字、大小写字母、下划线、横杠组成的profile_id,会将请求内部转发到profile.php?id=捕获到的id
  • QSA标志会保留原请求附带的其他查询参数,比如访问domain.com/profile/123?from=home时,转发后会变成profile.php?id=123&from=home
  • L标志表示匹配到这条规则后就停止后续匹配,避免和后面的移除.php规则冲突

额外可选配置(旧链接自动跳转场景)

如果你希望用户访问旧的domain.com/profile.php?id=xxx链接时自动跳转到新的路径格式,可以在RewriteEngine On后面再加两条规则:

# 旧链接自动301跳转到新路径格式
RewriteCond %{THE_REQUEST} /profile\.php\?id=([0-9a-zA-Z_-]+) [NC]
RewriteRule ^ /profile/%1? [L,R=301]

这部分规则会触发301永久重定向,同时自动去掉原链接的?id参数,可避免搜索引擎收录重复内容。

内容的提问来源于stack exchange,提问作者Mahbub Rashid Tonoy

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 06:36:03