web-dev-qa-db-ja.com

web.configは特定のドメインのみにリダイレクトします

特定のドメインへのリダイレクトにこだわっています。セットアップは、独自のドメイン*.azurewebsites.netをもたらすAzure webappsで構成されています。これらをリダイレクトから除外します。追加ドメインの場合、例えばexample.comリダイレクトする必要があります

  • httpsへ
  • wwwへ
  • 正しいアドレスを入力するとリダイレクトされません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件の投稿を読みましたが、いずれも別のドメイン名を除外していません。

1
lolops

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>
2
lolops

あなたが必要とするルールはこれだと思います:

<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

1
jalarcon

HTTPSを強制的に実行しようとしている場合は、構成を変更することなく、Azure Web Appsの機能になります。

Azure App Service HTTPSのみを作成する方法

enter image description here

0
James Wood