最近我将一个ASP.net站点迁移到ASP.net MVC站点。之前有两个主机头,一个是mydomain.com,另一个是www.mydomain.com。我的SEO说你应该只使用一个网址“www.domain.com”来获取SEO优势。
我正在寻找一个选项,可以将所有mydomain.com请求永久重定向到www.mydomain.com。
该站点托管在IIS6中,并在ASP.net MVC 4中开发。
答案 0 :(得分:18)
您可以从web.config文件
执行此操作<system.webServer>
<rewrite>
<rules>
<rule name="Redirect to WWW" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^example.com$" />
</conditions>
<action type="Redirect" url="http://www.example.com/{R:0}"
redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
答案 1 :(得分:5)
您可以在IIS中使用配置或网址重写器,但我找到的最佳方法就是将Application_BeginRequest()
中的一些代码添加到global.asax.cs
中,如下所示:
var HOST = "www.mydomain.com";
if ( !Request.ServerVariables[ "HTTP_HOST" ].Equals(
HOST,
StringComparison.InvariantCultureIgnoreCase )
)
{
Response.RedirectPermanent(
( HttpContext.Current.Request.IsSecureConnection ? "https://" : "http://" )
+ HOST
+ HttpContext.Current.Request.RawUrl );
}
因为您在代码中执行此操作,所以您可以基于每个请求获得所需的任何逻辑。
答案 2 :(得分:0)
不幸的是, URL重写模块不适用于IIS6 (仅限IIS7或更高版本)。您是否考虑过创建自己的HttpModule,就像这样?
IIS 6 how to redirect from http://example.com/* to http://www.example.com/*
或者您可以使用第三方解决方案,例如:
答案 3 :(得分:0)
(需要IIS 7或更高版本)
来自http://www.codeproject.com/Articles/87759/Redirecting-to-WWW-on-ASP-NET-and-IIS
(与上述解决方案类似,但不要求您添加自己的域名。)
<configuration>
<system.webServer>
<rewrite>
<rules>
<clear />
<rule name="WWW Rewrite" enabled="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" negate="true"
pattern="^www\.([.a-zA-Z0-9]+)$" />
</conditions>
<action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}"
appendQueryString="true" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
请注意,您很可能会在标记下看到波浪线,并显示标记无效的消息。我收到了这条消息,但实际上它运作得很好。
如果您希望intellisense有效,可以在此处尝试此更新...
http://ruslany.net/2009/08/visual-studio-xml-intellisense-for-url-rewrite-1-1/
有关httpRedirect的更多信息,请点击此处...
http://www.iis.net/configreference/system.webserver/httpredirect