web-dev-qa-db-ja.com

サイトでもあるサブディレクトリを持つIIS7メインサイト

私はIIS管理に不慣れですが、サイトのルートに、サイトでもある複数のディレクトリがあるサイトをセットアップする必要があります。

たとえば、 http://www.example.com にサイトがあるとします。

そのサイトのルートディレクトリには、そのコンテンツ用の複数のフォルダーがありますが、/ communityと/ labsなどの2つの他のディレクトリもあります。

http://www.example.com/community または-にアクセスした場合に完全に異なるasp.netサイトにアクセスできるように、これらのディレクトリを個別のサイトのドキュメントルートにしたい http://www.example.com/labs メインサイトにアクセスした場合 http://www.example.com から。

実際、これは1つのディレクトリに3つのサイトになります。

さまざまなポートを使用して個別のサイトを作成する方法を確認できますが、それらすべてをポート80に配置します。

これらのサブディレクトリサイトは仮想サイトですか?私のシステム管理者がこれを何度も公開している企業サイトに設定しているため、これが可能であることはわかっていますが、私は自分でこれを試みており、企業のIT部門から回答を得ることができません。彼らがそれをした方法。 :^)

ありがとう、スコット

5
Scott

これは、IIS 7.5ではかなり簡単です。

簡単に言えば、「Webサイト」は、少なくとも1つのエンドポイントマッピング(aBinding)と1つ以上のアプリケーションを持つプレースホルダーにすぎません。

Webサイトを作成します(または既定のWebサイトの設定を変更します)。 IIS ManagerでWebサイトを展開すると、サブディレクトリのツリー、つまりWebサイトのルートアプリケーションが指す物理ディレクトリ内のサブディレクトリが表示されます。

別のアプリケーションをホストするサブディレクトリ(たとえば、「コミュニティ」)を右クリックし、アプリケーションに変換を選択します。これで、コンテンツを提供する代替のアプリケーションプールを構成できるようになり、ルートアプリケーションの機能の設定(ほとんど)とは無関係に、アプリケーションを個別に構成できます。

より詳細な説明については、 Mike Volodarskyのブログ を参照してください。IIS 7アプリケーションアーキテクチャを設計したので、誰かが何であるかを知っています:-)

11

IIS7では、各サイトにデフォルトのアプリケーションがありますが、サブ アプリケーション を簡単に追加できます。サイトを右クリックして、[アプリケーションの追加]をクリックします。ここでは、エイリアス(/ community)、アプリケーションプール(事前に新しいものを作成したい場合があります)、およびサーバー上の物理ファイルへのパスを指定します。

1
Joel E Salas

既存のサイトに影響を及ぼさない別の方法(多くはM $製品automagによって作成および管理されるため)は、URLを書き換えるリバースプロキシです。および/または必要に応じて応答パッチ:

RL書き換えv2とApplication Request Routingを使用したリバースプロキシ

そこでかなり長い指示は要約されます:

  • インストール IIS書き換え拡張機能
  • これらの行のいいね!をルートに追加しますweb.config/configuration/system.webServerInetMgrのUIでそれらを追加する方法を示しています):
<rewrite>
    <!--route requests-->
    <rules>
        <rule name="Reverse Proxy to webmail" stopProcessing="true">
            <match url="^webmail/(.*)" />
            <action type="Rewrite" url="http://localhost:8081/{R:1}" />
        </rule>
        <rule name="Reverse Proxy to payroll" stopProcessing="true">
            <match url="^payroll/(.*)" />
            <action type="Rewrite" url="http://localhost:8082/{R:1}" />
        </rule>
    </rules>
    <!--patch response HTML-->
    <outboundRules>
        <rule name="Add application prefix" preCondition="IsHTML">
            <match filterByTags="A" pattern="^/(.*)" />
            <conditions>
                <add input="{URL}" pattern="^/(webmail|payroll)/.*" />
            </conditions>
            <action type="Rewrite" value="/{C:1}/{R:1}" />
        </rule>
        <preConditions>
            <preCondition name="IsHTML">
            <add input="{RESPONSE_CONTENT_TYPE}" pattern="^text/html" />
            </preCondition>
        </preConditions>
    </outboundRules>
</rewrite>
0
ivan_pozdeev