IIS7のワイルドカードサブドメイン。 Apacheのように作成することは可能ですか?
質問
これは、Apacheがワイルドカードドメインに関して持っているのと同じ機能を実現するためにIIS7を構成することは可能ですか? URLで使用されるサブドメインユーザーに基づいてASP.NET Webアプリケーションでユーザーをルーティングすることに興味があります。
次のようなものがここで説明されています:
http://steinsoft.net/index.php?site=programming/ articles / apachewildcarddomain
ありがとう
解決
答えはいいえ、IIS7(まだ)はワイルドカードホスト名をサポートしていません( this )。 1つのWebサイトで複数のドメインを提供する場合、今のところ唯一の回避策は、お勧めのとおり、専用IPを使用し、ワイルドカードをサポートするDNSでそれを行うことです。
2013更新
完全を期すため、IIS8にはまだこの機能がありません。
2016更新
最後に、Windows 2016のIIS 10はワイルドカードサブドメインをサポートしています。
他のヒント
IISはワイルドカードホストヘッダーをサポートしていますか?キャプチャしてリダイレクトできますか * .mydomain.comから1つのWebサイトへ?
答えは「はい/いいえ」です。はい、あなたは * .mydomain.comを1つにリダイレクトできる ウェブサイト。いいえ、魔法が入っているから IISではなくDNS。
次のようにします:
IIS MMCでは、
ホストなしでWebサイトを構成する
ヘッダー、IPアドレスを割り当てます
サイト。 (IPアドレスが1つの場合
ボックス内で、これをスキップできます)。
これにより、ウェブサイトは
特定のIPとすべてをリッスンします
HTTPリクエストがIPに送信され、
完了です:)
次のステップは、名前を確認することです ワイルドカードの解決策 正しいIPでクエリおよび返信する 住所。 Microsoft DNSを使用している場合 サービス、それはあなたが作成することはできません '*' Aレコード(すでに仮定している DNS MMCにドメインゾーンを作成した)、 次のことを行う必要があります。
-
%windir%\system32\dns\
に移動します
- ゾーンファイルを見つけます。例:
mydomain.com.dns、メモ帳で開きます - エントリを追加します。例:
* A IP.IP.IP.IP
- ゾーンデータファイルを保存
- ゾーンデータをリロードする DNS MMCで。
これを行うことにより、すべて* あなたがIPに応答します 前に設定しました。例えば。 abc.mydomain.com、www.mydomain.com、 K2k.mydomain.comなど。
動作していることを確認するには、pingを試してください
ユーティリティping (insert anything here).mydomain.com
あなたがすべき
IP.IP.IP.IPから返信を取得
次に、ブラウジングしてみてください、http://(挿入 何でもここ).mydomain.com /、あなた あなたと同じウェブページを取得する必要があります 設定しました。
MicrosoftのDNSにワイルドカード(*)Aレコードを作成することはできませんが、ワイルドカードCNAME
を作成できます 。すべてのサブドメインを特定のIPにダイレクトするだけでよい場合、これは機能します。たとえば、www.mydomain.com
のAレコードがある場合、*.mydomain.com
の<=>レコードを追加して、<=>をポイントできます。リクエストヘッダーのホスト名はサブドメインのままなので、必要に応じてWebアプリがそれをキャッチして処理できる必要があります。
Web Platform Installer( http:// www。 microsoft.com/web/downloads/platform.aspx ))をインストールし、<!> quot; URL Rewrite <!> quot;モジュール。 <!> quot; A <!> quot;を追加すると、 <!> quot; *。example.com <!> quot;のようなレコードを使用すると、すべてのサブドメインをIISサーバーに送信できます。 IISサーバーでは、URL書き換えルールをデフォルトのWebサイトに追加するだけで、別のURLへのリダイレクトなど、必要な処理を実行できます。たとえば、ユーザーが<!> quot; xyz.example.com <!> quot;と入力すると、<!> quot; example.com <!> quot;にリダイレクトし、不明なサブドメインをすべてルートドメインにポイントできます。 。手順は次のとおりです。
-
Web Platform Installerのインストール: http://www.microsoft.com/ web / downloads / platform.aspx
実行して、<!> quot; URL Rewrite <!> quot;を検索し、インストールします。
-
デフォルトのWebサイトに移動し、<!> quot; URL Rewrite <!> quot;を開きます。
-
「<!> quot; Add Rule(s)<!> quot;」をクリックします。右側にあります。
-
ルールに名前を付けて、次を設定します。
リクエストされたURL:パターンと一致
使用:正規表現
パターン:(。*)
論理グループ化:すべてに一致
-
新しい条件を追加し(<!> quot; Add .. <!> quot;ボタンをクリック)、設定します:
条件入力:{CACHE_URL}
入力文字列の確認:パターンと一致
パターン(必要に応じて変更):(http | https)://(。*?)\ .rootdomain \ .tld
[OK]をクリックします。
-
次に、アクションまでスクロールダウンして設定します:
アクションタイプ:リダイレクト
リダイレクトURL(必要に応じて変更):{C:1}://rootdomain.tld {R:0}
<!> quot; {C:#} <!> quot;および<!> quot; {R:#} <!> quot; <!> quot;テストパターン<!> quotをクリックすると、テストウィンドウが表示されます。正規表現パターンエントリの横にあるボタン。サーバー値の一部を照合して、後で再利用できます。
また、URLでHTTP / HTTPSを渡す際のヒント(上記のステップ6の<!> quot; {C:1} <!> quot;)をチェックアウトすることもできます: http://weblogs.asp.net/owscott/url-rewrite- protocol-http-https-in-the-action
更新2:リンクが壊れています。IIS10にアップグレードすると、ワイルドカードがサポートされます。
UPDATE:これはしばらくの間機能しますが、しばらくすると、複数のリクエストが送られてくるのに襲われました。この方法はお勧めしません。
DNSレコードが正しく設定されていること(*-<!> gt; @のCNAMEレコード)を確認し、問題なく動作することを確認します。複数のドメインでテスト済み。
リンクが壊れている http://pzxc.com/apache-style-wildcard- hostname-rewrite-rules-in-iis
IIS 10以降にアップグレードできないユーザーの場合、リバースプロキシ経由でワイルドカードホスト名のサポートを有効にすることはそれほど難しくありません。
HTTPの例は以下のとおりですが、他の設定はほんの数ステップです。
- ホスト名なしで*:80にバインドするキャッチオールサイトを作成します。
- *:8091にバインドし、ホスト名なしの最初のサイトを作成します。
- *:8092にバインドし、ホスト名なしの2番目のサイトを作成します。
- 両方のサイトをテストして先に進みます。
- ARRおよびURL書き換えモジュールをインストールします。
-
キャッチオールサイトに書き換えルールを作成して、2つのサイトにリクエストをディスパッチします
<system.webServer> <rewrite> <rules> <rule name="site1" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTP_HOST}" pattern="^(.*).site1.com$" /> </conditions> <action type="Rewrite" url="http://localhost:8091/{R:0}" /> </rule> <rule name="site2" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{HTTP_HOST}" pattern="^(.*).site2.com$" /> </conditions> <action type="Rewrite" url="http://localhost:8092/{R:0}" /> </rule> </rules> </rewrite> </system.webServer>
サーバーレベルでは、ARRプロキシモードをオンにする必要があることに注意してください。
<system.webServer>
<proxy enabled="true" />
</system.webServer>
IIS 10ワイルドカードホスト名は、ARRにオーバーヘッドがあるため(ただし一般的には無視できるほど)、よりシンプルであり、パフォーマンスも向上しています。