我正在尝试将非www网站重定向到www,但是当我在web.config或我的Global.asax中添加重定向规则时,它显示该页面未正确重定向。 web.config中的重定向规则
<rewrite>
<rules>
<rule name="CanonicalHostNameRule" enabled="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTP_HOST}" pattern="testdomain\.com$" />
<add input="{HTTP_HOST}" pattern="^www\.testdomain\.com$" negate="true" />
</conditions>
<action type="Redirect" url="http://www.testdomain.com/{R:1}" />
</rule>
</rules>
</rewrite>
我也在Application_BeginRequest
内的Global.asax中试过这个
注意:我一次尝试其中一种。
if(HttpContext.Current.Request.Url.ToString().ToLower().Contains("http://testdomain.com"))
{
HttpContext.Current.Response.Status = "301 Moved Permanently";
HttpContext.Current.Response.AddHeader("Location",
Request.Url.ToString().ToLower().Replace("http://testdomain.com", "http://www.testdomain.com"));
}
我的Default.aspx和Default.aspx.cs页面中没有代码.. 任何人都知道实际问题可能是什么。
答案 0 :(得分:0)
在<system.webServer>
部分
<rewrite>
<rule name="Redirect to www">
<match url=".*" />
<conditions logicalGrouping="MatchAny">
<add input="{HTTP_HOST}" pattern="^(www\.)(.*)$" negate="true" />
</conditions>
<action type="Redirect" url="http://www.{HTTP_HOST}/{R:0}" redirectType="Permanent"/>
</rule>
</rewrite>