1

特定の IP アドレスを別のファイルにリダイレクトする .htaccess ファイルを作成しました。

# Allow rewriting of htaccess
RewriteEngine On
RewriteBase /

# Get remote address/block of addresses to redirect
RewriteCond %{REMOTE_ADDR} 127\.0\.0\.1

# Define the file being accessed
RewriteCond %{REQUEST_URI} /index\.php$

# When the remote address(es) try to access the file above redirect them to the file below
RewriteRule .* /other-index\.php [R,L]

これはうまく機能し、上の例では localhost が index.php にアクセスしようとすると、localhost を other-index.php にリダイレクトしますが、他のすべてのリモート ホストには index.php へのアクセスを許可します。

リモートホストが呼び出しています: http://www.example.com/index.php

私の質問は、リモート ホスト (この場合は localhost) が、サーバーによってリダイレクトされていることを検出できるかということです。

4

1 に答える 1

1

私の質問は、リモート ホスト (この場合は localhost) が、サーバーによってリダイレクトされていることを検出できるかということです。

はい、クライアント (127.0.0.1) が/index.phpサーバーにリクエストを送信するためです。サーバーは、クライアントを別の場所にリダイレクトする 302 で応答/other-index.phpします。

通常、ブラウザを使用している場合と同様に、これはすべてシームレスに行われます。ブラウザーは新しい場所 ( /other-index.php) を取得し、新しい場所をサーバーに要求するだけで、それを取得します。それは即座に起こります。しかし、リモート ホスト (クライアント) は、( に対して) 最初に行った要求が新しい場所( )/index.phpで 302 になったため、リダイレクトされていることを認識しています。/other-index.php

あなたRの角括弧内のフラグRewriteRuleが省略された場合、リダイレクトは行われず、URI はサーバーによって内部的に書き換えられ、クライアント (リモート ホスト) は、other-index.phpリクエスト時の内容other.php

于 2012-09-19T15:52:05.593 に答える