web-dev-qa-db-fra.com

web.config pour rediriger sauf certaines adresses IP données

Je cherche un web.config qui est équivalent au fichier .htaccess ci-dessous.

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REMOTE_Host} !^123\.123\.123\.123
RewriteCond %{REMOTE_Host} !^321\.321\.321\.321
RewriteCond %{REQUEST_URI} !/coming-soon\.html$
RewriteRule (.*)$ /coming-soon.html [R=302,L]
</IfModule>

Ce qui redirige tout le monde vers une page à venir, à l'exception des adresses IP indiquées. Malheureusement, je ne connais pas IIS.

3
Alvin

En supposant que vous utilisiez IIS7, vous voudrez utiliser le module IIS URL Rewrite . Une fois celui-ci installé sur votre serveur, vous pouvez importer les règles .htaccess mod_rewrite directement et les convertir à la syntaxe correcte, puis les ajouter au fichier web.config de votre site. Des informations à ce sujet peuvent être trouvées ici .

Dans sa forme brute, vos règles mod_rewrite seront converties en ceci:

<rewrite>
  <rules>
    <rule name="Imported Rule 1" stopProcessing="true">
      <match url="(.*)$" ignoreCase="false" />
      <conditions>
        <add input="{REMOTE_Host}" pattern="^123\.123\.123\.123" ignoreCase="false" negate="true" />
        <add input="{REMOTE_Host}" pattern="^321\.321\.321\.321" ignoreCase="false" negate="true" />
        <add input="{URL}" pattern="/coming-soon\.html$" ignoreCase="false" negate="true" />
      </conditions>
      <action type="Redirect" redirectType="Found" url="/coming-soon.html" />
    </rule>
  </rules>
</rewrite>

Vous aurez probablement besoin de tester et d’ajuster la règle pour répondre à vos besoins. Je crois que cela a été mentionné dans un commentaire sur l'utilisation de {REMOTE_ADDR} au lieu de {REMOTE_Host}. Je suis d'accord avec cela si vous recherchez une adresse IP spécifique.

2
Rob