特定のドメインへのリダイレクトにこだわっています。セットアップは、独自のドメイン*.azurewebsites.net
をもたらすAzure webappsで構成されています。これらをリダイレクトから除外します。追加ドメインの場合、例えばexample.comリダイレクトする必要があります
https://www.example.com
編集:私は展開スロットを使用するので、実稼働環境でスロットを交換するときに同じweb.configが機能するようにします。
複数のルールを使用しようとしたときに、残念ながらサーバーエラーまたはリダイレクトエラーが発生します。正規表現をよりよく学ぶ必要がありますか? 「内部」ドメインを除外する最初のルールを次に示しますが、それはすでに機能していません。
<rule name="ignore Azure" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_Host}" pattern="^azurewebsites\.net$" />
<add input="{HTTPS_Host}" pattern="^azurewebsites\.net$" />
</conditions>
<action type="none" />
</rule>
Googleで最初の30件の投稿を読みましたが、いずれも別のドメイン名を除外していません。
Joses Answerに基づいて、これは私が必要なことを行います:-まだ展開スロットにいる間にazurewebsitesドメインにアクセスできます-本番ドメインは常にhttpsでサブドメインにリダイレクトされます
<rule name="HTTPS and Subdomain in Production" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_Host}" pattern="^.*\.azurewebsites\.net$" negate="true" />
<add input="{HTTP_Host}" pattern="^www\..*" negate="true" />
</conditions>
<action type="Redirect" url="https://www.{HTTP_Host}/{R:1}" redirectType="Permanent"/>
</rule>
あなたが必要とするルールはこれだと思います:
<rule name="HTTPS ignore Azure" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_Host}" pattern="^.*\.azurewebsites\.net$" negate="true" />
<add input="{HTTPS}" pattern="^OFF$" />
<add input="{HTTP_Host}" pattern="^www\..*" negate="true" />
</conditions>
<action type="Redirect" url="https://www.{HTTP_Host}/{R:1}" />
</rule>
このルールは、現在のドメインが* .azurewebsites.netの形式でnotであり、www.
で始まっていないかどうか、およびnotであるかどうかを確認しますHTTPS経由。 3つの「if」がすべて当てはまる場合、HTTP経由でアクセスしようとするwww
のないカスタムドメインなので、サブドメインとしてwww
を追加して、要求されたドメインのhttps://バージョンに永続リダイレクト(301)を送信します。
うまくいくはずです。やってみて教えてください。
HTH