IIS 环境 CodeIgniter 隐藏 URL 中的 index.php

Posted 之由

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IIS 环境 CodeIgniter 隐藏 URL 中的 index.php相关的知识,希望对你有一定的参考价值。

在 IIS 环境搭建好 CI 框架后,默认的URL如下,其中的“index.php”甚是影响美观。

 去掉的方法也较为简单。首先参照 CI 说明( https://codeigniter.org.cn/user_guide/general/urls.html#url-index-php ),移除链接中的URL地址。

默认情况,你的 URL 中会包含 index.php 文件:

example.com/index.php/news/article/my_article

如果你的 Apache 服务器启用了 mod_rewrite ,你可以简单的通过一个 .htaccess 文件再加上一些简单的规则就可以移除 index.php 了。下面是这个文件的一个例子, 其中使用了 "否定条件" 来排除某些不需要重定向的项目:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]

在上面的例子中,除已存在的目录和文件,其他的 HTTP 请求都会经过你的 index.php 文件。

而博主并未验证上述内容,在 CI 框架根目录下添加 .htaccess 文件(在 VS Code IDE中)后实际填写的内容为:

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

IIS 还需要在网上下载一个 ISAPI_Rewrite,运行程序后,点开相应网站,并应用 .htaccess 即可(之后关闭该窗口也不影响)。

 

 以下是配置成功后的效果。

 

以上是关于IIS 环境 CodeIgniter 隐藏 URL 中的 index.php的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Codeigniter 上隐藏 URL 字符串中的数据

CodeIgniter - 如何从 URL 中隐藏 index.php

ThinkPHP5隐藏index.php在Win7或者Win2008R2下IIS设置

从 url 隐藏目录名称和 index.php

如何在 Codeigniter 的分页类中隐藏页面链接?

带有 web.config 文件的 IIS 上的 Codeigniter 2