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

CodeIgniter 3.0如何实现URL不变的后台跳转?

解决方案

1. 修改.htaccess配置(核心调整)

你当前的规则用了R=301触发外部跳转,导致地址栏变化。需要改成服务器内部重写,去掉跳转标志,让请求在后台处理,不改变浏览器地址栏:

替换原有a.com相关规则为:

# 针对a.com的请求,内部转发到i/路径处理
RewriteCond %{HTTP_HOST} ^a\.com$
RewriteRule ^(.*)$ /i/$1 [L]
  • 说明:[L]表示匹配后停止后续规则;去掉R=301就不会向浏览器返回跳转指令,地址栏将始终显示a.com开头的URL。
  • 若CodeIgniter部署在服务器子目录(如/ci),需调整重写目标为/ci/i/$1。

2. 保留现有CodeIgniter路由规则

你的现有路由已经能覆盖所有分段场景,无需修改:

$route['i/(:any)'] = 'i/index/';
$route['i/(:any)/board/(:any)'] = 'i/index';

内部重写后的请求会自动匹配这些规则,转发到I.php的index方法,你可以通过$this->uri->segment(2)获取abc/test这类分段值。

3. 效果验证

  • 访问a.com/abc:服务器后台按i/abc逻辑处理,地址栏保持a.com/abc不变;
  • 访问b.com/i/test:直接走原有路由逻辑,地址栏正常显示b.com/i/test。

注意事项

  • 确保服务器已开启mod_rewrite模块;
  • 虚拟主机配置需设置AllowOverride All,允许.htaccess生效;
  • 后续新增任意分段,无需修改配置,(:any)会自动匹配所有路径。

内容的提问来源于stack exchange,提问作者김동원

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 22:42:10