web-dev-qa-db-ja.com

特定のIPを除いてリダイレクトするweb.config

以下の.htaccessファイルと同等のweb.configを探しています。

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

これにより、指定されたIP以外のすべてのページがすぐに来るページにリダイレクトされます。残念ながら、私はIISに慣れていません。

3
Alvin

IIS7を使用していると仮定すると、 IIS URL Rewrite モジュールを使用することができます。サーバーにインストールすると、実際に.htaccess mod_rewriteルールを直接インポートできます。ルールを正しい構文に変換し、サイトのweb.configに追加します。それについての情報は here にあります。

生の形式では、mod_rewriteルールは次のように変換されます。

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

ほとんどの場合、ニーズに合わせてルールをテストおよび調整する必要があります。 {REMOTE_Host}の代わりに{REMOTE_ADDR}を使用することについてのコメントで言及されていると思います。特定のIPアドレスを探している場合は同意します。

2
Rob