How to rewrite the index.php of Codeigniter on Windows Azure How to rewrite the index.php of Codeigniter on Windows Azure codeigniter codeigniter

How to rewrite the index.php of Codeigniter on Windows Azure


You can add rewrite rules in your web.config file. Add the following to the system.webServer section:

<rewrite>  <rules>    <rule name="Rule" 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" />        <add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" />      </conditions>      <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />    </rule>  </rules></rewrite> 


Create a file name web.config in wwwroot

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


You can also implement other rewrite rules like

<rule name="a rule"><match url="^xxx/(.*)/(.*)-(.*)\.xxx" /><conditions logicalGrouping="MatchAll" trackAllCaptures="false" /><action type="Rewrite" url="controller/method/{R:3}" /></rule>

with one condition, is to change $config['url_protocal']='PATH_INFO'; in config/config.php this will tell URL rewrite module to use re-writed URI instead of original URL, otherwise you will have 404 page not found problem.