2010-12-06 30 views
3

J'ai toujours utilisé Apache, donc je suis complètement nouveau à IIS. Comment ferais-je cela dans IIS?Quel est l'équivalent IIS de ces règles de réécriture?

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 

J'ai Gestionnaire des services Internet ouvert, et je regarde « URL Rewrite » et juste cliqué sur « Ajouter une règle (s) ». Je suppose que c'est l'endroit que je veux être, mais je ne sais pas où aller à partir d'ici.


Pour ceux d'entre vous qui connaissent IIS mais pas mod_rewrite de apache, il vérifie simplement si la demande est pas un répertoire ni un fichier, et si oui, prend l'URL de la requête et le transmet à index.php comme GET param à la place afin qu'il puisse être manipulé dans le code, avec un routeur.

Répondre

10

Vous pouvez les importer automatiquement, il suffit d'aller sur le site ou l'application que vous voulez et double-cliquez sur l'icône URL Rewrite, puis utilisez le lien Importer des règles ... dans la liste des tâches. Dans cette interface, il suffit de copier/coller les règles ci-dessus et cliquez sur OK, il va les importer dans votre web.config.

L'équivalent dans votre web.config serait (bien sûr dans la configuration/system.webServer ... etc):

<rewrite> 
    <rules> 
    <rule name="Imported Rule 1" stopProcessing="true"> 
     <match url="^(.*)$" ignoreCase="false" /> 
     <conditions> 
     <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> 
     <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> 
     </conditions> 
     <action type="Rewrite" url="index.php?url={R:1}" appendQueryString="true" /> 
    </rule> 
    </rules> 
</rewrite> 

Pour plus d'informations sur la façon de les importer: http://learn.iis.net/page.aspx/470/importing-apache-modrewrite-rules/

+1

Woah. .c'est super ! – mpen

1

Les lignes htaccess que vous avez publiées sont très similaires à celles utilisées par Zend Framework. Ils ont un guide de configuration de réécriture qui a a section on IIS 7.0.