最近我将一个 ASP.net 站点迁移到 ASP.net MVC 站点。之前有两个主机头,一个是 mydomain.com,另一个是 www.mydomain.com。我的 SEO 说你应该只使用一个 URL“www.domain.com”来获得 SEO 优势。
我正在寻找一个选项来执行 301 永久重定向所有 mydomain.com 请求到 www.mydomain.com。
该站点托管在 IIS6 中,并在 ASP.net MVC 4 中开发。
最近我将一个 ASP.net 站点迁移到 ASP.net MVC 站点。之前有两个主机头,一个是 mydomain.com,另一个是 www.mydomain.com。我的 SEO 说你应该只使用一个 URL“www.domain.com”来获得 SEO 优势。
我正在寻找一个选项来执行 301 永久重定向所有 mydomain.com 请求到 www.mydomain.com。
该站点托管在 IIS6 中,并在 ASP.net MVC 4 中开发。
您可以从您的 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>
您可以在 IIS 中使用 config 或 Url Rewriter,但我发现的最佳方法就是像这样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 );
}
因为您是在代码中执行此操作,所以您可以根据每个请求拥有所需的任何逻辑。
不幸的是,URL 重写模块不适用于 IIS6(仅 IIS7 或更高版本)。您是否考虑过创建自己的 HttpModule,类似这样的东西?
IIS 6 如何从 http://example.com/* 重定向到 http://www.example.com/*
或者,您可能会使用如下其中之一的第 3 方解决方案:
(需要 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>
请注意,您很可能会在标签下方看到波浪线,并显示标签无效的消息。我收到了这条消息,但事实上,它工作得很好。
如果你想让智能感知工作,你可以在这里尝试这个更新......
http://ruslany.net/2009/08/visual-studio-xml-intellisense-for-url-rewrite-1-1/
有关 httpRedirect 的更多信息可以在这里找到...
http://www.iis.net/configreference/system.webserver/httpredirect