Codeigniter URL 重定向而不添加 index.php
Posted
技术标签:
【中文标题】Codeigniter URL 重定向而不添加 index.php【英文标题】:Codeigniter URL Redirect WITHOUT adding index.php 【发布时间】:2012-03-18 13:26:18 【问题描述】:我正在一个带有几个控制器的站点上工作,并已将我的服务器配置为使用 apache 配置中的一些简单的正则表达式匹配将 http://www.host.com/controller/function/params
的请求重定向到http://www.host.com/index.php/controller/function/params
。现在,我试图让我的一个控制器重定向到另一个控制器,但没有将 index.php
添加到 URL,这就是 redirect()
函数所做的。在codeigniter中是否有一种简单的方法可以做到这一点?先谢谢了!
【问题讨论】:
【参考方案1】:我用过 $config['index_page'] = ''; 成功了。
【讨论】:
【参考方案2】:您可以使用redirect
。如果它被配置为您的索引页,它只会添加index.php
。
因此,请检查您的 index_page
配置。它应该是一个空字符串:
$config['index_page'] = '';
文件:app/config/config.php
更多信息:http://www.codeigniter.com/user_guide/general/urls.html?highlight=mod_rewrite [更新版本]
【讨论】:
顺便问一下,这个配置参数是否会影响 codeigniter 中的其他任何内容,还是仅用于重定向? 如果影响了几个 URL 相关的功能,例如site_url()
(顺便说一句,redirect
使用了)
谢谢!真正简单的解决方案。
谢谢,如此简单,按预期进行。
为我工作谢谢【参考方案3】:
您需要在基于 codeignitor 的项目的根文件夹中添加另一个 .htaccess,并在其中编写一些重定向规则,如下例所示:
RewriteEngine On
RewriteBase /codeignitortest/
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteRule (.*) index.php?$1 [QSA,L]
或者可以在 application/config/config.php 中做如下
$config['index_page'] = 'index.php';到 $config['index_page'] = '';
【讨论】:
以上是关于Codeigniter URL 重定向而不添加 index.php的主要内容,如果未能解决你的问题,请参考以下文章
使用 Codeigniter 重定向 SEO 友好的 url?
在codeigniter中将站点url http重定向到https