1

サーバー上のサイトに割り当てられる前に、IISレベルで受信要求を操作することは可能ですか?

基本的に、これを書き直したい-

www.somegenericdomain.com?site=someotherdomain

これに-

www.someotherdomain.com

また、IISが要求が属するサイトを選択する前にこれを行う必要があるため、この時点より前にホストヘッダーを変更する必要があります。

可能ですか、それともクレイジーですか?IIS7を実行しています。

4

2 に答える 2

1

リクエストをリライト、リダイレクト、またはプロキシできます。

  • Rewriteはリクエストを変更しますが、割り当て先のサイトは変更しません。書き換えにより、次のことができます。

    • HTTP エラー コード (503、404、401 など) を返します。
    • クエリ文字列または URL パスを操作します。1 つの例は、クエリ文字列パラメーターを URL パス要素に変換することです。www.server.com/default.aspx?s=foo は www.server.com/foo になり、その逆も同様です。
    • リクエストにヘッダーを設定します。
  • リダイレクトは、301 または 302 応答を更新されたアドレスでブラウザに送り返します。www.example.com/foo のリクエストを受け取り、ブラウザに 302 と更新されたアドレス www.otherdomain.com などで応答できます。

  • リクエストをプロキシします。この場合、Web サーバーは「透過的なプロキシ」として機能すると言われています。これは、最初の IIS サーバーが 2 番目のサーバーを呼び出し、応答を取得して、元のリクエスターにパッケージ化できることを意味します。

これら 3 つのアクションは、多くの場合、組み合わせて実行されます。これらのアクションを実行するために使用されるツールは、「URL リライター」と呼ばれます。IIS7 には Microsoft の組み込みオプション ( The IIS URL Rewrite Module ) があり、IIS6、IIS7、およびその他の Windows 以外の Web サーバー用のサードパーティ オプションもあり、無料のものと商用のものがあります。Apache の mod_proxy は、Linux 向けの大きなものです。これらのツールはすべて、基本的に同じ種類のことを行います。


特定の質問に答えるには、いいえ、あるドメインから別のドメインにリクエストを書き換えることはできません。 Web サーバーの場合、書き換えは意味のある用語であり、URL 書き換えはサーバーの変更の可能性を排除します。

ただし、リダイレクトまたはプロキシを介して、あるサーバーから別のサーバーにリクエストを変換することは可能です。リクエストの「書き換え」について尋ねると、そのうちの1つが実際に必要になる場合があります。

于 2010-03-23T19:32:56.607 に答える
0

すべてが可能だと思いますが、IISの前に実行する方法ではありません。サーバーの一部は、低レベルのドライバーとしても機能します。ただし、HeliconApehttp://www.helicontech.com/ape/doc/mod_rewrite.htmのmod_rewriteモジュールなどのURL書き換えソリューションを使用することはできます。すべてのサイトにソフトウェアをグローバルに設定すると、次のように必要なものを入手できます。

RewriteEngine on
RewriteCond %{HTTP_HOST} www.somegenericdomain.com [NC]
RewriteProxy (.*) http://www.someotherdomain.com$1
于 2010-03-24T10:40:35.780 に答える