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

迁移普通PHP网站到CodeIgniter后,如何用.htaccess重定向指定页面?

解决将contact_us.php重定向到CodeIgniter /contact路由的问题

刚把常规PHP站点迁移到CodeIgniter框架,需要把旧的contact_us.php重定向到新的/contact路由是吧?这个需求很常见,用根目录的.htaccess就能轻松实现,而且推荐用301永久重定向(对SEO友好,能让搜索引擎更新索引)。

完整的.htaccess配置示例

把下面的代码放到网站根目录的.htaccess文件里(如果已经有这个文件,直接把重定向规则加到CodeIgniter默认规则的前面):

# 开启URL重写引擎
RewriteEngine On

# 核心重定向规则:将contact_us.php永久重定向到/contact
RewriteRule ^contact_us.php$ /contact [R=301,L]

# CodeIgniter默认规则:隐藏URL中的index.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

规则说明

  • R=301:标记这是永久重定向,告诉浏览器和搜索引擎这个URL已经永久迁移到新地址,优先用这个而不是临时的302重定向
  • L:表示这是最后一条匹配规则,一旦这条规则触发,就不再处理后面的规则,避免冲突
  • 重定向规则一定要放在CodeIgniter默认的URL重写规则前面,这样旧的contact_us.php请求会先被捕获并重定向

额外注意事项

  1. 确认CodeIgniter路由配置:要确保你的CodeIgniter已经配置了/contact路由对应的控制器方法,打开application/config/routes.php,添加类似这样的规则:
    $route['contact'] = 'ContactController/index'; // 替换成你实际的控制器和方法名
    
  2. 测试建议:刚开始测试的时候可以把R=301改成R=302(临时重定向),确认重定向正常后再改回301,避免浏览器缓存错误的重定向规则
  3. 服务器环境要求:确保你的Apache服务器已经开启了mod_rewrite模块,如果是Nginx环境的话,规则写法会不一样,需要调整配置

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 04:16:49