2012-10-09 33 views
5

entiendo que puedo quitar la parte 'index.php' de la dirección URL con el siguiente código de web.config:¿Quitar index.php de Codeigniter en IIS?

<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> 

El problema es que he instalado IC en un subdirectorio (mydomain.com/codeigniter) y tengo problemas para entender el archivo web.config.

¿Sabes cómo cambiar esto para que funcione para un subdirectorio?

Gracias :)

+0

¿Ha intentado agregar subcarpetas a la ruta de la url de reescritura? '' –

+0

¡Gracias! Eso funciona, pero solo si mi primera regla no está allí. De hecho, necesito dos, uno para el directorio superior y otro para el subdirectorio. – stuthemoo

Respuesta

11

tengo WordPress en el directorio raíz y mi aplicación CodeIgniter en un subdirectorio. Creo un web.config similar al tuyo y lo guardo en el subdirectorio. Mi aplicación CI ya no necesita index.php en url.

Al principio, agrego mi subdirectorio en el <action url="myapp/index.php/{R:1}"...> y deseo que se restrinja para mirar solo en el subdirectorio pero falla. Elimino el subdirectorio y lo dejo en original, pero muevo el web.config al subdirectorio y funciona.

Por lo tanto, creo que puede crear dos archivos web.config con reglas diferentes y guardarlos en un directorio diferente.

Otra nota podría ayudar: permitir que el mensaje de error muestre los detalles de IIS. Uso los trucos para descubrir cómo IIS busca mis archivos. Es <httpErrors errorMode="Detailed" />, <asp scriptErrorSentToBrowser="true"/>, y la sección <system.web> de la siguiente manera:

<?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> 

gustaría que ayude!

+0

Gracias lo estaba buscando por días. :) – Kits

+0

Gracias por las soluciones :) –

Cuestiones relacionadas