実際にwwwサイトを取得するためにドメイン名にwwwを入力しないサイトユーザーをリダイレクトする最良の方法は何ですか?ASP.Net MVCの完全なwwwドメイン名にwww以外のユーザーを修正してください
IE:I後藤Google.comと私はこれを正しく渡されるのであれば、それはないあなたのコードでは、httpサーバ上の別名として行われるべきであるwww.Google.com
実際にwwwサイトを取得するためにドメイン名にwwwを入力しないサイトユーザーをリダイレクトする最良の方法は何ですか?ASP.Net MVCの完全なwwwドメイン名にwww以外のユーザーを修正してください
IE:I後藤Google.comと私はこれを正しく渡されるのであれば、それはないあなたのコードでは、httpサーバ上の別名として行われるべきであるwww.Google.com
にリダイレクトしています。.. .imo。
wwwを使わずにサーバーに接続すると、正しいURLにリダイレクトするだけです。
これは、ドメインを管理するDNSサーバー上のAレコード(またはCNAMEレコード)を使用して処理するのが最適です。これをコードで処理することはできますが、実際には適切な場所ではありません。
AとCNAMEレコードは別のドメインにリダイレクトできません。彼らはドメインのIPアドレスが何であるかだけ言うことができます。 CNAMEは、別のドメインと同じIPアドレスを使用するように指示します。 –
AレコードまたはCNAMEを使用すると、ユーザーは両方のドメインからサイトにアクセスできますが、2つの異なるURLに同じコンテンツがあるため、SEOページランクが減少します。これを処理する最善の方法は、example.comのリクエストをwww.example.comのURLにリダイレクトして、一貫性を維持することです。コードでこれを行う1つの方法については、この質問への私の答えを見てください。 –
これに対処する最も一般的な方法は、URLが期待どおりでない場合にリダイレクトを行うことです。通常、これはmod_rewriteモジュールを使って行われます。
ASP.NET MVCでは、要求ライフサイクルの早い段階で着信要求をキャッチし、URLをチェックして、必要に応じて正しいURLにリダイレクトします(レスポンスコード301または302)。
このブログ記事のサンプルコードは、Canonical urls With ASP.NET MVCです。これは、これを達成する1つの方法を示しています。ここでは、モノとApacheで物事をやったりIISへのmod_rewriteの拡張子のいずれかを使用して、これらの私たちのために
protected void Application_BeginRequest(Object sender, EventArgs e)
{
if (Request.Url.Authority.StartsWith("www"))
return;
string url = (Request.Url.Scheme
+ "://www."
+ HttpContext.Current.Request.Url.Authority
+ HttpContext.Current.Request.Url.AbsolutePath
);
Response.Clear();
Response.Status = "301 Moved Permanently";
Response.AddHeader("Location", url);
Response.End();
}
はmod_rewriteの例です:
これらに続いてRewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com$1 [R=301,L]
AレコードやCNAMEを使用すると、ユーザーは両方のドメインからサイトにアクセスできますが、Google JuiceのURLはと異なるというURLで同じコンテンツになるため、減らすことができます。
しかし、Google Webマスターツールでサイトをログに記録すると、どのドメインが優先ドメインであるかを知ることができ、そこにリンクすることができます。 – ChrisF
301リダイレクトを無視しないでください。 そのような状況に対処するために、シャーシェンによって書かれた素晴らしい投稿があります。 http://dotnetusergroup.com/blogs/shahedkhan/archive/2009/05/18/10229.aspx
Microsoft IIS URL書き換えモジュールを使用している場合、web.configの次のエントリはドメインの整合性を維持します。
<rewrite>
<rules>
<rule name="Consistent Domain" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{HTTP_HOST}" pattern="^mediapopinc.com$" />
</conditions>
<action type="Redirect" redirectType="Permanent" url="http://www.mediapopinc.com/{R:1}" />
</rule>
</rules>
</rewrite>
私はIIS URL書き換えモジュールとそれを使用しています。WebApp iself内のネットルーティング機能どの場所からリダイレクトするのが良いでしょうか?または(3番目のオプション)私はちょうど両方に応答し、URLリライトモジュールでリバースプロキシを使用して両方のURLを維持する必要がありますか? ...その最後の3番目のオプションは、私は思うだろうSEOには理想的ではありません。 – johntrepreneur
やアンドリューは、CNAME – northpole
A CNAMEが唯一の別名である、それは「他の」URLへのリダイレクトをしない使用して、前述のように。 http://example.com/で入力すると、CNAMEまたはAの設定を使用しているときにhttp://www.example.com/にリダイレクトされません。 –
たとえば、Apacheでは、着信要求をリダイレクトするserverAliasを設定できます。 CNAMEは、使用するサーバーIPを指定します。serverAliasは、トラフィックを正しく送信します。 – northpole