Godaddyのドメインと、AzureWebサイトインフラストラクチャ上のWebサイトがあります。私が達成したいのは、私のドメインのwwwバージョンのみを使用することです。ユーザーがブラウザに「example.com」と入力した場合、「www.example.com」にリダイレクトされます。
サイトがASP.Net MVC 5アプリをホストしている場合、それが違いを生みます。これを構成するにはどうすればよいですか?
このコードを<system.webServer>
セクションの下に追加します
<rewrite>
<rules>
<rule name="Redirect to www">
<match url=".*" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_Host}" pattern="^(www\.)(.*)$" negate="true" />
</conditions>
<action type="Redirect" url="http://www.{HTTP_Host}/{R:0}" redirectType="Permanent"/>
</rule>
</rules>
</rewrite>
実際のリダイレクトが必要な場合(つまり、ユーザーがexample.com
と入力すると、ブラウザのアドレスが自動的にwww.example.com
に変更されます)、2つのオプションがあります。
example.com
へのリダイレクトで応答するGoDaddyIPをwww.example.com
にポイントできます。www.example.com
にリダイレクトしますただし、example.com
と入力したユーザーに、www.example.com
と入力したユーザーと同じコンテンツを取得させたい場合で、アドレスバーにwwwが表示されていないexample.com
が表示されてもかまいません。次のように:
@
に設定し、「Pointsto」を手順1で見つかったIPに設定したAレコードを設定します。awverify
に設定し、 "Points to"をawverify
で始まるAzure Webサイトのアドレスに設定したCNAMEレコードを追加します(例:awverify.mywebsite.azurewebsites.net
)www
に設定し、「Pointsto」をAzure Webサイトのアドレスに設定したCNAMEレコードを追加します(例:mywebsite.azurewebsites.net
)example.com
とwww.example.com
の両方を追加します。手順6でエラーが発生した場合は、DNSの変更が反映されるまで数時間待ってから、再試行してください。
詳細はこちら: https://www.windowsazure.com/en-us/documentation/articles/web-sites-custom-domain-name/
Negate = trueの一般的なMatchAllの代わりに、ネイキッドドメインのみをキャッチし、一致する場合はリダイレクトすることを好みます。私は単一のドメインのみに関心があり、localhost、localtest.me、サブドメインなどの除外をまとめて記述する必要がないため、これはAzureに適しています。
これがルールです...パターンのexample
をドメインに変更してください:
<system.webServer>
<rewrite>
<rules>
<rule name="Redirect To WWW" enabled="true" stopProcessing="true">
<match url=".*" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_Host}" pattern="^example\.com$" />
</conditions>
<action type="Redirect" url="http://www.{HTTP_Host}{URL}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
これは一時的な302リダイレクトでしょうか? web.configのルールを使用したperm301リダイレクトは、SEOに適しています。
ASP.NET Core MVCで、これを_Startup.cs
_ Configure()
メソッドに追加します。
_ app.UseRewriter(new RewriteOptions()
// redirect non www to www.
.AddRedirectToWwwPermanent()
// While we are at it, let's also redirect http to https.
.AddRedirectToHttpsPermanent()
);
_