6

最近我将一个 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 中开发。

4

4 回答 4

19

您可以从您的 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>
于 2013-04-11T14:56:28.010 回答
5

您可以在 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 );
}

因为您是在代码中执行此操作,所以您可以根据每个请求拥有所需的任何逻辑。

于 2013-04-11T14:58:57.147 回答
0

不幸的是,URL 重写模块不适用于 IIS6(仅 IIS7 或更高版本)。您是否考虑过创建自己的 HttpModule,类似这样的东西?

IIS 6 如何从 http://example.com/* 重定向到 http://www.example.com/*

或者,您可能会使用如下其中之一的第 3 方解决方案:

http://iirf.codeplex.com/

http://www.urlrewriting.net/149/en/home.html

http://www.isapirewrite.com/

http://urlrewriter.net/

于 2013-04-12T16:43:30.633 回答
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>

请注意,您很可能会在标签下方看到波浪线,并显示标签无效的消息。我收到了这条消息,但事实上,它工作得很好。

如果你想让智能感知工作,你可以在这里尝试这个更新......

http://ruslany.net/2009/08/visual-studio-xml-intellisense-for-url-rewrite-1-1/

有关 httpRedirect 的更多信息可以在这里找到...

http://www.iis.net/configreference/system.webserver/httpredirect

于 2014-03-13T17:25:23.220 回答