除了安装重写模块,还有一种简单的方法可以将非www重定向到Sitecore中的www?如何将非www重定向到sitecore的www?
任何URL开始与非www为EG:http://example.com应该被重定向到http://www.example.com
除了安装重写模块,还有一种简单的方法可以将非www重定向到Sitecore中的www?如何将非www重定向到sitecore的www?
任何URL开始与非www为EG:http://example.com应该被重定向到http://www.example.com
您可以添加自定义处理器的httpRequestBegin
管道,如果你想在你的.NET代码的一切。
但是,重写模块仍然是实现你所需要的最流行的方法之一。
这种事情你想尽早做。在应用程序级别,它会不必要地使用资源。尝试IIS或通过DNS重定向更好。
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();
}
我不会像这样硬编码的东西。如果他们引入子域名,将很难保持 –
正确的方式做这将是设置targethostname在Site definition config补丁文件 - 但如果你已经有了Sitecore的单站点实例,你可能只是做它在web.config中。
执行此操作的方法是设置hostname =“example.com | www.example.com”,然后设置targethostname =“www.example.com”。
它是一个IIS服务器,并使用sitecore。所以上述解决方案不会为我工作 –
是的。具有规范重定向规则的IIS URL重写模块,在“添加规则”对话框中明确标记为“规范域名”。 –