リライトモジュールをインストールする以外にも、Sitecoreのwww以外をwwwにリダイレクトする簡単な方法はありますか?非wwwをsitecoreでwwwにリダイレクトする方法は?
任意のURLを、例えばのための非WWWで開始:http://example.comはhttp://www.example.com
リライトモジュールをインストールする以外にも、Sitecoreのwww以外をwwwにリダイレクトする簡単な方法はありますか?非wwwをsitecoreでwwwにリダイレクトする方法は?
任意のURLを、例えばのための非WWWで開始:http://example.comはhttp://www.example.com
にリダイレクトする必要があり、あなたの.NETコードのすべてを維持したい場合は、httpRequestBegin
パイプラインにカスタムプロセッサを追加することができます。
でも、書き換えモジュールは、必要なものを実現する最も一般的な方法の1つです。
できるだけ早くやりたいことです。アプリケーションレベルでは、不必要にリソースを使用します。 IISを試してみてください。
if (!Request.Url.Host.StartsWith("www") && !Request.Url.IsLoopback)
{
var builder = new UriBuilder(Request.Url) { Host = "www." + Request.Url.Host };
Response.StatusCode = 301;
Response.AddHeader("Location", builder.ToString());
Response.End();
}
私はこのようなものをハードコードしません。サブドメインを導入しても維持するのは難しいでしょう –
それを行うための適切な方法は、Site definition configパッチファイルにtargethostnameを設定することです - あなたはサイトコアのシングルサイトインスタンスを持っている場合は、あなただけのweb.configファイルでそれを行うかもしれません。
これを行うには、hostname = "example.com | www.example.com"を設定し、次にtargethostname = "www.example.com"を設定します。
IISサーバーで、sitecoreを使用しています。だから上記の解決策は私のために働いていない –
うん。正規表現のリダイレクトルールを持つIIS URLリライトモジュール。[ルールの追加]ダイアログボックスで、[Canonical domain name]というラベルが付けられています。 –