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

.htaccess重写查询请求失败:特定带参数URL重定向求助

解决.htaccess重定向/blog/?p=数字到/blogs的问题

嘿,我来帮你搞定这个重定向的问题!你的现有规则没生效,大概率是几个细节没处理好,我给你调整一下,顺便解释原因:

首先,你原来的规则里,RewriteCond %{REQUEST_URI} ^/blog/$ 只严格匹配带结尾斜杠的 /blog/,但实际请求可能是不带斜杠的 /blog?p=51,这就会漏掉这种情况;另外,默认情况下RewriteRule会保留原查询字符串,所以你需要主动清除它。

试试这个修正后的规则:

RewriteEngine On

# 匹配所有 /blog 或 /blog/ 后带 p=数字的请求,重定向到 /blogs
RewriteCond %{QUERY_STRING} ^p=\d+$
RewriteRule ^blog/?$ /blogs? [R=302,L]

我给你拆解一下每部分的作用:

  • RewriteEngine On:先确保重写引擎是开启的(如果你的.htaccess里没加过的话必须加上)
  • RewriteCond %{QUERY_STRING} ^p=\d+$:精准匹配查询字符串是 p= 后面跟一串数字的情况
  • RewriteRule ^blog/?$ /blogs?:^blog/?$ 同时匹配 /blog 和 /blog/ 两种路径;末尾的 ? 是关键,它会告诉Apache不要把原查询字符串带到新URL里
  • R=302,L:R=302 是临时重定向,等你确认规则没问题后,可以改成 R=301 永久重定向;L 表示这是最后一条规则,匹配后就不再往下执行其他规则

还有几个小提醒:

  • 确保你的.htaccess文件放在网站的根目录下
  • 服务器配置里要允许使用.htaccess(也就是AllowOverride All,如果是自己的服务器可以检查一下)
  • 测试前记得清空浏览器缓存,不然旧的重定向缓存可能会干扰结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:13:46