2017-01-27 3 views
1

私は紺碧の上にホストしているウェブサイトを持っています。私は最近SSLを購入し、それを設定しました。ユーザーはhttp://example.comまたはhttps://example.comのいずれかを入力して自分のサイトにアクセスできます。azureでホストされているWebサイトをhttpsにリダイレクトするためにweb.configで書かれたコード以外に何かが必要です

は、私が欲しいのはhttp://example.com/aboutにおけるユーザーの種類は、彼らがhttps://example.com/aboutに代わりにリダイレクトされる場合も

ので.COM後に何かを維持しながら、自動的に後者にリダイレクトされるように元に入力するユーザーのためです。

いくつか読みになった後、私は私が

<system.webServer> 
<rewrite> 
<rules> 
<rule name=”Redirect to https”> 
<match url=”(.*)”/> 
<conditions> 
<add input=”{HTTPS}” pattern=”Off”/> 
<add input=”{REQUEST_METHOD}” pattern=”^get$|^head$” /> 
</conditions> 
<action type=”Redirect” url=”https://{HTTP_HOST}/{R:1}”/> 
</rule> 
</rules> 
</rewrite> 
</system.webServer> 

やりたいようだ、このコードに遭遇してきた。しかし、私は私のweb.configファイルにこれを追加する前に、私はいくつか質問があります。

  1. IIS URL書き換えモジュールとは何ですか? IIS Rewriteであり、新しいweb.configファイルをアップロードする前に私の青いホストされたウェブサイトにインストールする必要があります。
  2. ユーザーがURLを入力したときに、そのURLからwwwを削除する方法もあります。たとえば、ユーザーがwww.example.comと入力した場合は、代わりにhttps://example.comにリダイレクトする必要があります。 Google検索コンソールでは、URLをexample.comと表示するようGoogleに指示したため、www.example.com
  3. となり、最終的にはこのコードで検索できますか?これを達成するためのより専門的な方法はありますか?メリットは何ですか?私は自分のサイトがasp .netウェブフォームであることに注意する必要があります。私はMVCがルーティングオプションを持っていることを知っているが、それは私のためのオプションではありません。

編集:自分でIISをホストしていないため、URLリライトモジュールをインストールできるかどうかわからないため、How to force HTTPS using a web.config fileは私の問題を解決していないと思います。紺碧はあなたにIISの設定にアクセスできますか?私は紺碧の詳細に慣れていません。

+0

ヒント:SSLを購入しないでください。代わりに、無料のLetsEncryptサービスを使用します。 https://www.troyhunt.com/everything-you-need-to-know-about-loading-a-free-lets-encrypt-certificate-into-an-azure-website/ –

答えて

3

Microsoft URL Rewrite Module for IISを使用すると、IIS管理者は、リクエストURLをフレンドリURLにマップする強力なカスタマイズルールを作成して、ユーザーが覚えやすく、検索エンジンで見つけやすくなります。

このモジュールは、KuduのAzure Web AppのapplicationHost.configを調べると、Azure Web App用にプリインストールされています。

したがって、Azure Web Appのモジュールの可用性について心配する必要はありません。

URL Rewrite Module in Azure Web App

のAzureのWebアプリケーションのためのHTTPSのリダイレクトを強制するURL書き換えの設定は、あなたが意図し何を達成するための最も簡単な方法です。上記の設定では、リクエストメソッドがHTTP GETまたはHTTP HEADの場合にのみ が適用されます。以下の構成にはこのような制限はありません。

<system.webServer> 
    <rewrite> 
     <rules> 
      <rule name="Force HTTPS Redirection" enabled="true" stopProcessing="true"> 
       <match url="^$" ignoreCase="false"/> 
       <conditions> 
        <add input="{HTTPS}" pattern="^OFF$"/> 
       </conditions> 
       <action type="Redirect" url="https://{HTTP_HOST}/" redirectType="Permanent"/> 
      </rule> 
     </rules> 
    </rewrite> 
</system.webServer> 
0

最後に1つ追加します。あなたがAzure Web Apps上で動作していると仮定すると、彼らはウォームアップと初期化のためにサイトにさまざまなプローブを持っています。これらのプローブをリダイレクトしたくない場合もあります。そうしないと、Azureのスワップ機能をブルー/グリーン展開のようなものに再起動または使用する際に問題が発生する可能性があります。これらのプローブは、実際にあなたのサイトを打つのではなく301/302に戻ることになる(とAzureが実際にリダイレクトに従わない)

より多くの例https://github.com/projectkudu/kudu/wiki/Xdt-transform-samples

<rule name="Redirect to non-WWW" stopProcessing="true"> 
     <match url="(.*)" /> 
     <conditions> 
     <add input="{HTTP_HOST}" pattern="www.example.com$" /> 
     <add input="{HTTP_USER_AGENT}" pattern="Initialization" negate="true" /> <!-- IIS Application Initialization Warmup --> 
     <add input="{HTTP_USER_AGENT}" pattern="SiteWarmup" negate="true" /> <!-- Azure WebApps Warmup Request --> 
     <add input="{HTTP_USER_AGENT}" pattern="AlwaysOn" negate="true" /> <!-- Azure WebApps AlwaysOn Probes --> 
     </conditions> 
     <action type="Redirect" redirectType="Permanent" url="https://example.com/{R:1}" /> 
    </rule> 

    <!-- Redirect to HTTPS Version --> 
    <rule name="HTTP to HTTPS redirect" stopProcessing="true"> 
     <match url="(.*)" /> 
     <conditions> 
     <add input="{HTTPS}" pattern="off" ignoreCase="true" /> 
     <add input="{HTTP_USER_AGENT}" pattern="Initialization" negate="true" /> 
     <add input="{HTTP_USER_AGENT}" pattern="SiteWarmup" negate="true" /> 
     <add input="{HTTP_USER_AGENT}" pattern="AlwaysOn" negate="true" /> 
     </conditions> 
     <action type="Redirect" redirectType="Permanent" url="https://{HTTP_HOST}/{R:1}" /> 
    </rule> 
関連する問題