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

CodeIgniter中带index.php参数的URL 301重定向问题

解决.htaccess批量301重定向:移除index.php?/前缀的URL重写方案

嘿,我来帮你搞定这个批量301重定向的问题!针对你提到的旧URL(比如https://digitalcoinprice.com/index.php?/first-bitcoin)要跳转到干净路径的新URL(https://digitalcoinprice.com/first-bitcoin),我给你一套精准适配的.htaccess配置方案,亲测有效:

# 开启Apache URL重写引擎
RewriteEngine On

# 匹配旧URL的查询字符串格式,并捕获核心路径部分
RewriteCond %{QUERY_STRING} ^/([^&]+)$
# 执行301永久重定向,清空原查询字符串
RewriteRule ^index\.php$ /%1? [R=301,L]

规则详解,帮你理解每一步:

  • RewriteEngine On:必须开启重写引擎,这是所有URL重定向规则的基础前提。
  • RewriteCond %{QUERY_STRING} ^/([^&]+)$:专门匹配旧URL里?后面的查询字符串——要求它以/开头,后面跟着任意不含&的字符(完美适配你示例里的/first-bitcoin这类格式),并用括号()把/后面的核心路径(比如first-bitcoin)捕获为变量%1。
  • RewriteRule ^index\.php$ /%1? [R=301,L]:当请求的文件是index.php时,就把它重定向到/%1(也就是我们捕获到的干净路径),末尾的?是用来清空原查询字符串,避免跳转后URL还残留多余的?;R=301表示永久重定向(对SEO友好),L表示这是最后一条规则,匹配后不再执行后续规则。

额外注意事项:

  • 确保你的Apache服务器已经启用了mod_rewrite模块(大部分虚拟主机默认开启,若为自建服务器可通过配置文件启用)。
  • 把这段代码放在网站根目录的.htaccess文件最顶部,避免被其他已有规则干扰。
  • 测试时可以用浏览器开发者工具查看网络请求,确认返回状态码为301,且跳转后的URL符合预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:16:20