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 4 中的特定 URL

使用 Codeigniter 重定向 SEO 友好的 url?

在codeigniter中将站点url http重定向到https

在codeigniter的htaccess中重定向url

Codeigniter Htaccess 和 URL 重定向问题

如何让浏览器保存密码而不重定向?