1

当用户输入没有非 www 的 URL 时,我需要重定向我的网站,并且应该使用 www 重定向。

示例:abc.com 到 www.abc.com

而且我也需要支持子域网址。

示例:abc.xyz.com 到 www.abc.xyz.com

4

2 回答 2

1
<system.webServer>
    <validation validateIntegratedModeConfiguration="false" />
    <rewrite>
      <rules>
        <rule name="non-www to www" enabled="true" stopProcessing="true">
          <match url=".*" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^[^\.]+\.[^\.]+$" />
          </conditions>
          <action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
于 2013-07-25T11:07:03.993 回答
1

您也可以在全球范围内捕捉到这一点Applicaton_BeginRequest

string url = HttpContext.Current.Request.RawUrl;

    if (!url.StartsWith("www.")) {
      Response.Redirect("www." + url);
    }

编辑这个问题显示 302 由 Response.Redirect 返回。

正如有人在那里回答的那样,Response.RedirectPermament可以使用.NET 4.0,这将返回 301。

奇怪的是。我Response.Redirect在我的一个网站上使用.NET 4.0它,它返回301得很好。

于 2013-07-25T11:12:49.963 回答