如何在 Codeigniter 中重定向和删除 index.php [重复]

Posted

技术标签:

【中文标题】如何在 Codeigniter 中重定向和删除 index.php [重复]【英文标题】:How to redirect and remove index.php in Codeigniter [duplicate] 【发布时间】:2013-05-20 04:22:00 【问题描述】:

我正在使用下面的 htaccess 从我在 Codeigniter 中的 url 中删除 index.php

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]

问题是用户仍然可以使用下面的代码来访问该方法:

http://example.com/index.php/controller/method

如果他们添加了 index.php,我如何将它们 重定向 到没有 index.php 的 url 或将它们发送到 error 页面?

【问题讨论】:

本题重复标注错误。这是一个后续案例,提问者既希望删除 index.php,又希望将任何现有链接/书签重定向到新 URL。相关问题并没有告诉您如何做第二部分 - 这是提问者明确询问的内容。 【参考方案1】:
RewriteEngine On

RewriteRule ^index.php/(.*)$ /$1 [R=302,L]

RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ index.php?/$1 [L]

第一条规则永久重定向用户非 index.php 站点,然后它涉及您的第二条规则和宾果游戏。

【讨论】:

将 301 更改为 302 以保存搜索引擎中的 SEO 链接匹配。我会删除我的答案,你的有重定向。 现在我收到此页面有重定向循环的错误 @rcpayan:将您的最后一条规则更改为RewriteRule ^(.*)$ index.php?/$1 [L]。 Apache 将 index.php/$1 视为重定向。 @user181892:这最后一条评论应该修复循环:-) @SébastienRenauld 非常感谢。

以上是关于如何在 Codeigniter 中重定向和删除 index.php [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Codeigniter 在自定义 404 页面中重定向 404 错误?

在 CodeIgniter 3 中重定向后 Flashdata 未清除

在CodeIgniter中重定向整个站点不起作用

在 Codeigniter 中重定向后会话丢失

在codeigniter的htaccess中重定向url

[本地主机在Codeigniter中重定向了您太多次