2016-04-27 63 views

回答

3

您可以添加自定义处理器的httpRequestBegin管道,如果你想在你的.NET代码的一切。

但是,重写模块仍然是实现你所需要的最流行的方法之一。

+0

它是一个IIS服务器,并使用sitecore。所以上述解决方案不会为我工作 –

+0

是的。具有规范重定向规则的IIS URL重写模块,在“添加规则”对话框中明确标记为“规范域名”。 –

1

这种事情你想尽早做。在应用程序级别,它会不必要地使用资源。尝试IIS或通过DNS重定向更好。

0
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(); 
} 
+1

我不会像这样硬编码的东西。如果他们引入子域名,将很难保持 –

0

正确的方式做这将是设置targethostnameSite definition config补丁文件 - 但如果你已经有了Sitecore的单站点实例,你可能只是做它在web.config中。

执行此操作的方法是设置hostname =“example.com | www.example.com”,然后设置targethostname =“www.example.com”。