You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在IIS 8.0服务器上移除CodeIgniter URL中的index.php

我来帮你搞定这个问题!之前在IIS 8上部署CodeIgniter 3的时候,也碰到过一模一样的移除index.php的难题,下面是亲测有效的分步解决方案:

解决方案:在IIS 8中移除CodeIgniter 3.1.7 URL里的index.php

第一步:先调整CodeIgniter的核心配置

首先得把CI自身的配置改对,否则后续的URL重写也白搭。打开application/config/config.php,找到这两个关键配置项:

  • 将 $config['index_page'] = 'index.php'; 修改为 $config['index_page'] = '';
  • 把 $config['uri_protocol'] 设置为 'REQUEST_URI',也就是 $config['uri_protocol'] = 'REQUEST_URI';

第二步:配置IIS的URL Rewrite规则

如果你已经安装了URL Rewrite插件,按以下步骤操作:

  1. 打开IIS管理器,选中你的目标网站,双击右侧面板里的URL Rewrite图标
  2. 在右侧“操作”栏点击添加规则,选择空白规则后点击确定
  3. 填写规则详情:
    • 规则名称:随便起个好记的,比如Remove Index.php
    • 匹配URL区域:
      • 请求路径:选Matches the Pattern
      • 使用:选Regular Expressions
      • 模式:输入^(.*)$
      • 忽略大小写:勾选上
    • 条件区域:点击添加按钮,设置两个条件:
      • 第一个条件:输入{REQUEST_FILENAME},检查类型选Is Not a File,点击确定
      • 第二个条件:输入{REQUEST_FILENAME},检查类型选Is Not a Directory,点击确定
    • 操作区域:
      • 操作类型:选Rewrite
      • 重写URL:输入index.php/{R:1}
      • 追加查询字符串:勾选
      • 停止处理后续规则:勾选
  4. 点击应用保存规则

嫌手动配置麻烦的话,也可以直接在网站根目录创建web.config文件,把下面的代码复制进去(如果已有web.config,把rewrite节点合并到现有配置里就行):

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Remove Index.php" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

第三步:排查可能的坑点

如果设置完还是没生效,检查这几个地方:

  • 确认URL Rewrite插件已经正确安装并启用:在IIS管理器的“模块”里能看到RewriteModule就没问题
  • 网站的应用程序池权限要足够,确保能读取web.config文件
  • 检查CI的base_url配置:$config['base_url']要设置成你的网站根URL,比如http://localhost/,别留空
  • 先测试默认的Welcome控制器,访问http://localhost/welcome看是否能正常加载

内容的提问来源于stack exchange,提问作者Dip

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 09:21:03