日期:2014-05-17  浏览次数:20510 次

web.config怎么配置301重定向?
web.config怎么配置301重定向?

我希望 访问不带www的所有网页都 跳转到 带有www的
比如 http://csdn.net/a.html 跳转到 http://www.csdn.net/a.html 

web.config里这样设置 报错啊,提示不能识别rules 不能识别rule

<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="WWW Redirect" stopProcessing="true">
<match url=".*" />
<conditions><add input="{HTTP_HOST}" pattern="^域名.com$" /></conditions>
<action type="Redirect" url="http://www.域名.com/{R:0}" redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>



或者 可以在这里设置吗


<rewriter>
  <rewrite ... />
</rewriter>


怎么写啊

------解决方案--------------------
可以在Global.asax文件的Application_BeginRequest方法里实现
C# code

protected void Application_BeginRequest(object sender, EventArgs e)
{
   string authority= HttpContext.Current.Request.Url.Authority;//获取访问网址的主机名
   if(!authority.Contains("www"))
   {
      string localPath= HttpContext.Current.Request.Url.LocalPath;//获取访问的具体页面
      string query= HttpContext.Current.Request.Url.Query;//获取访问网址"?"后面的数据
      authority="www."+authority;
      HttpContext.Current.RewritePath(authority+localPath+query);
   }
  
}

------解决方案--------------------
我错了,原来lz还发了这个帖子。
------解决方案--------------------
楼上的都不是301,web.config只能设置url转发,是无法设置301的。