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