Remove index.php of Codeigniter on IIS?

前端 未结 2 1375
忘掉有多难
忘掉有多难 2021-02-04 16:42

I understand I can remove the \'index.php\' part of the url with the following web.config code:


  
    

        
相关标签:
2条回答
  • 2021-02-04 17:13

    I have WordPress in the root directory and my CodeIgniter application in a sub-directory. I create a similar web.config like yours and save it in the sub-directory. My CI app doesn't need the index.php in url any more.

    At first, I add my sub-directory in the <action url="myapp/index.php/{R:1}"...> and wish it could be restricted to look into the sub-directory only but fails. I remove the sub-directory and leave it to original but move the web.config to the subdirectory and it works.

    Therefore, I think maybe you may create two web.config files with different rules and saves them in different directory.

    Another note might help: enable the error message to output the detail from IIS. I use the tricks to find out how IIS looks for my files. It is <httpErrors errorMode="Detailed" />, <asp scriptErrorSentToBrowser="true"/>, and the <system.web> section as below:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
    
        <system.webServer>
    
            <httpErrors errorMode="Detailed" />
            <asp scriptErrorSentToBrowser="true"/>
    
            <rewrite>
            <rules>
                <rule name="RuleRemoveIndex" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true"/>
                </rule>
            </rules>
            </rewrite>
    
        </system.webServer>
    
        <system.web>
            <customErrors mode="Off"/>
            <compilation debug="true"/>
        </system.web>
    
    </configuration>
    

    Wish it help!

    0 讨论(0)
  • 2021-02-04 17:15

    Make web.config put in the root directory.

    User code:

     <?xml version="1.0" encoding="UTF-8"?>
      <configuration>
     <system.webServer>
    
        <httpErrors errorMode="Detailed" />
        <asp scriptErrorSentToBrowser="true"/>
    
        <rewrite>
        <rules>
            <rule name="RuleRemoveIndex" stopProcessing="true">
                <match url="^(.*)$" ignoreCase="false" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                </conditions>
                <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true"/>
            </rule>
        </rules>
        </rewrite>
    
    </system.webServer>
    
    <system.web>
        <customErrors mode="Off"/>
        <compilation debug="true"/>
    </system.web>
    

    0 讨论(0)
提交回复
热议问题