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

CodeIgniter中用.htaccess将指定URL重定向至根域名的问题

解决Apache URL重定向失效问题

我来帮你搞定这个重定向的问题~你之前的规则没生效主要有两个原因:

  1. Redirect指令属于mod_alias,它不支持正则表达式,你加的$会被当作URL的一部分字面匹配,自然找不到对应的请求;
  2. 那条规则只覆盖了/welcome/index,没处理另外两个需要重定向的URL。

下面给你两种可行的解决方案,根据你的服务器配置选就行:

方案1:用RedirectMatch(简单直接,支持正则)

如果你的服务器开启了mod_alias(默认都开),直接在.htaccess或者Apache配置文件里加这条规则,一次性覆盖所有三个目标URL:

RedirectMatch 301 ^/(welcome(/index)?|index\.php)$ /

正则说明:

  • ^/:匹配URL开头的根路径斜杠
  • welcome(/index)?:同时匹配/welcome和/welcome/index(?表示括号里的内容可选)
  • |:逻辑“或”,用来分隔不同的匹配规则
  • index\.php:匹配/index.php(正则里.要转义,不然会匹配任意字符)
  • $:匹配URL结尾,避免匹配到类似/welcome/indexabc这种无关路径

方案2:用mod_rewrite(更灵活,适合复杂场景)

如果你的服务器开启了mod_rewrite(大部分Apache环境都支持),可以用这套规则,扩展性更强:

RewriteEngine On
# 匹配目标路径并永久重定向到根目录
RewriteRule ^(welcome(/index)?|index\.php)$ / [R=301,L]

参数说明:

  • R=301:标记为永久重定向,对SEO更友好;测试阶段可以改成R=302(临时重定向),避免浏览器缓存旧规则导致测试不准
  • L:表示这是最后一条规则,匹配成功后不再执行后续重写规则

注意事项:

  • 确保.htaccess文件放在网站的根目录下
  • 检查Apache配置里是否开启了AllowOverride All,否则.htaccess的规则不会生效
  • 测试前可以清空浏览器缓存,避免旧的重定向规则干扰

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:47:45