Codeigniter web.config或.htaccess index.php在子目录中重写

Raj*_*Raj 6 apache iis mod-rewrite codeigniter web-config

我的网站文件夹结构如下......

Application Root
|- administration
|--|- application
|--|- system
|--|- index.php
|--|- web.config
|
|- application
|- system
|- index.php
|- web.config
Run Code Online (Sandbox Code Playgroud)

CI这里安装了两个框架.

  1. 站点根目录
  2. 管理文件夹

这里我说的是administration子文件夹.

我的web.config URL Rewrite如下所示.

<rules>
         <rule name="Rewrite to index.php">
            <match url="index.php|robots.txt|images|test.php" />
            <action type="None" />
        </rule>
        <rule name="Rewrite CI Index">
            <match url=".*" />
            <conditions>
                <add input="{REQUEST_FILENAME}" pattern="css|js|jpg|jpeg|png|gif|ico|htm|html" negate="true" />
            </conditions>
            <action type="Rewrite" url="index.php/{R:0}" />
        </rule>
    </rules>
Run Code Online (Sandbox Code Playgroud)

问题是,如果我删除index.php$config['index_page']site_root/administration/application/config/config.php,任何控制器功能显示未找到404页.网站root web.config实际上是这样做的.

我想index.php从子目录中的URL中删除.

1.我怎么能通过它web.config

2.我怎么能通过它.htaccess

我发现了这个,但没有得到答案.

Tim*_*law 1

我刚刚在 Linux 系统上根据您的文件夹结构运行了一个模型。

我添加了标准 htaccess 文件,如您在 codeigniter 用户指南中找到的那样。所以有两个.htaccess 文件。一个位于主应用程序(根)文件夹中,另一个位于管理文件夹中。

从两个配置文件中的 $config['index_file'] ='' 中删除了 index.php 。

使用 whoami 方法创建了一个家庭控制器,该方法仅回显由 /administration/home/whoami 调用的管理家庭控制器的“我是管理家庭控制器页面”和 /home/ 调用的“我是主要家庭控制器”我是谁。

两者都返回了相应的消息,表明每个消息都被正确调用。

直接来自用户指南的 .htaccess。

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

所以我想同样的方法也应该适用于 IIS,但不要让我这么做。我发现了一些可能有帮助的东西.... htaccess 的 web.config 版本

因此,对于上述设置,您应该能够输入适当的 URL 来访问两个 CI 实例。