如果输入http://xxx.cn就自动跳转到http://www.xxx.cn
我在首页加了下面的代码:
HttpContext.Current.Response.StatusCode = 301;
HttpContext.Current.Response.Status = "301 Moved Permanently";
HttpContext.Current.Response.AddHeader("Location", "http://www.xxx.cn");
但是加上后,网站就无法访问,请问如何解决是不是还需要设置IIS呢?

解决方案 »

  1.   

    <html>
    <head>
    <title>网站标题</title>
    <script type="text/javascript">
      var h = location.href;
      if (location.hostname == "xxx.cn")
        h = h.replace("xxx.cn", "www.xxx.cn");
      if (h != location.href)
        location.replace(h);
    </script>
    </head>
    <body>
    网站内容
    </body>
    </html>
      

  2.   

    需要这么复杂吗?
    直接根据当前的Request.Url.Host来判断就可以了
    或者利用1楼的,用JS,更简单
      

  3.   

    用这种方法主要是对SEO效果好,要不然也不用这种重定向方法
      

  4.   

    楼主啊,既然都到了后台使用cs进行http头定义的过程了,那为什么不直接使用Response.Redirect啊,因为Redirect也是使用301进行重新定向的,我想问问你这里说的对seo号是基于什么原理考虑
      

  5.   

    Response.Redirect("www.xxx.com") 也是301重定向吗?
    不知道也,如果是的话就简单了
      

  6.   

    Response.Status = "301 页面重定向!";
    Response.AddHeader("Location", "welcome.aspx");我的可以的
    这个也可以的<div>
    <span id="tiao">3</span>
    <a href="javascript:countDown"></a>秒后自动跳转……
    <meta http-equiv=refresh content=3;url='fencingArticleUpdateItems.aspx' />
    </div>
    <!--脚本开始--> 
    <script language="javascript" type=""> 
    function countDown(secs){ 
      tiao.innerText=secs; 
      if(--secs>0) 
       setTimeout("countDown("+secs+")",1000); 
      } 
      countDown(3); 
    </script> 
    <!--脚本结束-->
      

  7.   

    楼主,我误导了你了,Response.Redirect是302导向,区别如下
    跳转时的HTTP的状态码一般为200,301,302中的一个,下面先列出各状态码出现的情况,然后再解释各状态码有什么不同: 
    状态码200的跳转: 
    1. <meta http-equiv="refresh" content="3; URL=default.aspx" /> 
    2. Server.Transfer("default.aspx"); 
    3. URLRewrite--严格来说,这个不算是跳转,只是一种URL“欺骗” 
    4. <a>--不知道我把这个标签也列为一种跳转会不会有人有意见 
    状态302的跳转: 
    Response.Redirect("default.aspx"); 
    状态301和的跳转: Response.Status = "301 Moved Permanently"; 
    Response.AddHeader("Location", "http://www.cnblogs.com/dingxue"); 
    对于用户来说,各个跳转都差不很多,都可以达到目的。但对于SEO来说,这些差得很远,状态200第三条使用合适对SEO有很大好处,但状态200的第一条和状态302却基本没有一点益处,然后很可惜,302跳转被用到了满大街。 
    很久很久以前,那时候搜索引擎还很傻,好多人利用meta refresh来获得强大的SEO效果,后来直接被搜索引擎给干掉了。再后有很多人开始用302做跳板,后来也被干掉了,比如那两个著名的案例:Business.com和BMW。欺骗搜索引擎,后果很严重。所以现在很少有人在跳转上做SEO,但是有些不可避免的跳转还是要继续存在着,如何防止这些跳转起到负面影响呢?于是有人研究了301跳转。 
    忘记给一些入门的兄弟扫下盲,三种状态码解释如下: 
    200 正常状态,未发生任何事,普通页面浏览一般都是200 
    301 永久性转移(Permanently Moved),SEO必用的招式,会把旧页面的PR等信息转移到新页面 
    302 暂时性转移(Temporarily Moved),很常用的招式,也是SEO最容易被判作弊的方式 
      

  8.   

    就算我不加代码来进行跳转,只是在IIS里面 设置永久性重定向,效果也是一样的,始终不能显示页面