2012-04-01 15 views

Respuesta

14

Puede agregar reglas de reescritura en su archivo web.config. Agregue lo siguiente a la sección system.webServer:

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

Gracias, funciona a la perfección :) – Rbeuque74

+0

Esta configuración debería funcionar en la mayoría de los marcos php (zend 1/2, laravel, etc.) –

+0

Esto no funcionaba para mí y entonces me di cuenta de que moví la referencia a mi index.php archivo dentro de una carpeta de la aplicación (para Codeigniter) así que quizás una buena cosa para recordar es que este archivo debe estar donde el archivo index.php es para usted. – Dusan

10

crear un nombre de archivo web.config en 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> 
1

También puede aplicar otras reglas de reescritura como

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

con una condición, es cambiar $ config ['url_protocal'] = 'PATH_INFO'; en config/config.php esto le dirá al módulo de reescritura de URL que use el URI reescrito en lugar de la URL original, de lo contrario, usted no tendrá un problema con la página 404 no encontrada.

Cuestiones relacionadas