0

複数の .NET Web サイトをホストする Web サーバーがあります。私が設定した方法は、サーバーのルートに、そのコンテンツを含む各サイトのフォルダーが含まれるようにすることです。次に、ルート ディレクトリに web.config を配置して、URL を処理し、ユーザーがアクセスするサイトに応じて適切なフォルダーにユーザーを誘導します。

ルートディレクトリ:

  • \SiteA
  • \SiteB
  • \web.config

web.config は次のようになります。

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <clear />
                <rule name="SiteA" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{HTTP_HOST}" pattern="^(www\.)?.siteAdomain\.com$" />
                    </conditions>
                    <action type="Rewrite" url="\SiteA\{R:0}" />
                </rule>
                <rule name="SiteB" enabled="true" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{HTTP_HOST}" pattern="^(www\.)?.siteBdomain\.com$" />
                    </conditions>
                    <action type="Rewrite" url="\SiteB\{R:0}" />
                </rule>
            </rules>
        </rewrite>
        <urlCompression doStaticCompression="true" doDynamicCompression="true" />
    </system.webServer>
</configuration>

SiteA も ASP.NET メンバーシップを使用しています。

<authentication mode="Forms">
    <forms name=".ASPXFORMSAUTH" loginUrl="~/account/login.aspx" />
</authentication>

問題は、SiteA にアクセスすると認証が開始され、loginUrl にリダイレクトされることです。ただし、404 の原因となっている SiteA フォルダーではなく、ルート フォルダーに関するパスを解決しています。

調べたところ、このサイトは、これが .NET 3.5 SP1 でパッチが適用されたバグであると述べています。ただし、私のホスティング サービスは IIS 8.0 を実行している .NET 4.X 上にあるため、これについてはすべて明確にする必要があると思います。

ここで何か簡単なことを見逃していますか?

4

1 に答える 1