web-dev-qa-db-ja.com

IIS7リライトを使用して(HTTPまたはHTTPS)://(wwwまたはno-www).domainaliases.extのリクエストをHTTPS://maindomain.extにリダイレクトするには

同じサイトに複数のドメイン名が割り当てられており、すべての可能なアクセスの組み合わせを1つのドメインにリダイレクトする必要があります。つまり、訪問者がhttp://domainalias.extを使用するか、http://www.domainalias.extを使用するか、またはhttps://www.domainalias3を使用するか.extまたはhttps://domainalias4.ext、またはhttp://maindomain.exthttp:// wwwを含むその他の組み合わせ.maindomain.ext、およびhttps://www.maindomain.extこれらはすべてhttps://maindomain.extにリダイレクトされます

現在、次のコードを使用して、目的を部分的に達成しています。

<?xml version="1.0" encoding="UTF-8"?>

<configuration>
    <system.webServer>
        <rewrite>
            <rules>

                <rule name="Redirect to https://MAINDOMAIN.EXT" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{HTTPS}" pattern="off" />
                        <add input="{HTTP_Host}" pattern="^MAINDOMAIN\.EXT$" negate="true" />
                    </conditions>
                    <action type="Redirect" redirectType="Permanent" url="https://MAINDOMAIN.EXT/{R:1}" />
                </rule>

                <rule name="wordpress" patternSyntax="Wildcard">
                    <match url="*" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

...しかし、すべてのインスタンスで動作しません。ユーザーがhttps://(www。)domainalias.extを入力したときにhttps://maindomain.extにリダイレクトしません

したがって、私の質問は、IIS7 ReWriteに精通しているプログラマが既存のコードを変更してすべての可能性をカバーし、自分でロードしたか、HTTPまたはHTTPSモードでwwwを使用してすべてのドメインエイリアスを私のHTTPS形式のメインドメイン???

ロジックは次のようになります:URL全体がhttps://maindomain.extで始まらない場合は、https://maindomain.ext/(plus_whatever_else_that_followed)にリダイレクトします。

ご清聴ありがとうございました。どんな助けでもありがたいです。

注:質問が正しい形式でない場合は、編集またはアドバイスしてください。前もって感謝します。

3
costax

これはあなたがする必要があることの基本的な例だと思います:

<rewrite>
    <rules>
        <rule name="Redirect to maindomain.ext with SSL" stopProcessing="true">
            <match url="(.*)" />
            <conditions logicalGrouping="MatchAny">
                <add input="{HTTPS}" pattern="off" />
                <add input="{HTTP_Host}" pattern="^maindomain.ext$" negate="true" />
            </conditions>
            <action type="Redirect" url="https://maindomain.ext" />
        </rule>
    </rules>
</rewrite>
1
Rob