しばやん雑記

Azure とメイドさんが大好きなフリーランスのプログラマーのブログ

Windows Azure Web サイトでサブドメインを活用してみた

最近 daruyanagi.info というドメインを取得したので、今まで作成してきただるやなぎ関係のジェネレータを移すことにしました。しかし、今後も継続的に作っていきたいのでジェネレータ周りを generator.daruyanagi.info というサブドメインに集約させるために、Web サイトで設定を行ってみました。

とりあえず管理ポータルから Web サイトに generator.daruyanagi.info というドメインを登録します。今回は CNAME で Web サイトへ振り分けることにしました。

f:id:shiba-yan:20140302134425p:plain

ドメインに関してはこれで完了です。簡単ですね。

今回はメインのドメインとサブドメインで別々のコンテンツを表示したいので、同じく管理ポータルから新しい仮想アプリケーションを追加します。

f:id:shiba-yan:20140302134434p:plain

ディレクトリ自体はあとで作る必要がありますが、これで /generator というパスで仮想アプリケーションを追加できました。

そして Windows Azure Web サイトの管理を IIS Manager から行えるようになったらしい - しばやん雑記 でも書いたように、URL Rewrite の設定を IIS Manager から行っていきます。接続方法は省略しますが、完了すると先ほど追加した仮想アプリケーションがしっかりと見えていますね。

f:id:shiba-yan:20140302133406p:plain

URL Rewrite の設定はルートレベルで行っていきます。

と言っても全く難しいことはなくて、HTTP の Host ヘッダが generator.daruyanagi.info の場合には /generator へ書き換えを行う設定を追加するだけです。

f:id:shiba-yan:20140302133414p:plain

サクサクっと IIS Manager で設定を終わらせて保存すると、以下のような Web.config が生成されます。

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="generator.daruyanagi.info" stopProcessing="true">
                    <match url="^(.*)$" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="generator.daruyanagi.info" />
                    </conditions>
                    <action type="Rewrite" url="generator/{R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

これで全ての設定が終わったので http://generator.daruyanagi.info/ へアクセスすると、/generator 以下のコンテンツが表示されるようになりました。

f:id:shiba-yan:20140302134708p:plain

ASP.NET MVC のルーティングを使って Area にサブドメインを割り当てる方法もありますが、既存のコードを弄らずに割り当てできるのでこちらの方が便利です。