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

如何编写.htaccess规则实现带参数URL的伪静态路径化

解决.htaccess URL重写为路径形式的方案

要实现将cricf.com/cricket-article?cardid=3730转换为cricf.com/cricket-article/cardid/3730的URL格式,你需要在现有规则基础上添加旧URL重定向和新URL内部转发的规则,调整后的完整.htaccess代码如下:

RewriteEngine on

# 1. 将旧的带参数URL重定向到新的路径形式(外部重定向,更新浏览器地址栏)
RewriteCond %{THE_REQUEST} /cricket-article\?cardid=(\d+) [NC]
RewriteRule ^ /cricket-article/cardid/%1? [L,R=301]

# 2. 隐藏.php后缀的规则(保留你原有的功能)
RewriteCond %{THE_REQUEST} cricket-article.php
RewriteRule (.*).php$ /$1 [L,R=301]

# 3. 将新的路径形式URL内部转发到PHP文件处理
RewriteRule ^cricket-article/cardid/(\d+)$ cricket-article.php?cardid=$1 [L]

# 4. 处理无参数的cricket-article访问(保留原功能)
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^cricket-article$ cricket-article.php [L]

规则说明:

  • 第1条规则:匹配包含cardid参数的旧请求,提取cardid的数字值,重定向到新路径格式。R=301为永久重定向,利于搜索引擎更新收录;末尾的?用于清除原URL的查询字符串。
  • 第2条规则:保留原有隐藏.php后缀的功能,确保访问cricket-article.php时自动跳转到cricket-article。
  • 第3条规则:匹配新的路径形式URL,将路径中的数字作为cardid参数传递给cricket-article.php处理,属于内部转发,浏览器地址栏不会变化。
  • 第4条规则:保留原有的无参数访问cricket-article时转发到对应PHP文件的功能。

注意事项:

  • 确保服务器已启用mod_rewrite模块。
  • 若cardid值可能包含非数字字符,可将规则中的\d+替换为[^/]+(匹配除斜杠外的任意字符)。
  • 测试前建议清除浏览器缓存,避免旧缓存干扰重定向效果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:52:09