【问题标题】:How to do 301 Redirect from non-slashed root to slashed root domain on ASP.NET MVC 4如何在 ASP.NET MVC 4 上执行 301 从非斜线根重定向到斜线根域
【发布时间】:2013-02-03 17:04:14
【问题描述】:

具有域 http://mosaically.comhttp://mosaically.com/ 的 ASP.NET MVC 4 网站都返回 200 OK 响应。出于搜索引擎优化的原因,我希望 sosaically.com 使用斜线进行 301 重定向到 mosacally.com/。在 MVC 4 中有什么方法可以做到这一点吗?我更愿意在 MVC 中执行此操作,而不是尝试使用 IIS。

【问题讨论】:

    标签: asp.net-mvc asp.net-mvc-3 asp.net-mvc-2 asp.net-mvc-4 asp.net-mvc-routing


    【解决方案1】:

    刚刚发现它做不到,即使你是 Chuck Norris 说的谷歌

    http://googlewebmastercentral.blogspot.com/2010/04/to-slash-or-not-to-slash.html

    “请放心,对于您的根 URL,example.com 等同于 example.com/,即使您是 Chuck Norris 也无法重定向。”

    【讨论】:

      【解决方案2】:

      您可以在 IIS 中使用Url Rewrite module 来完成此任务。这是 nice step by step article 说明如何启用它。下面是示例重写规则在您的 web.config 中的样子:

      <system.webServer> 
          <rewrite> 
              <rules> 
                  <rule name="CanonicalHostNameRule1"> 
                      <match url="(.*)" /> 
                      <conditions> 
                          <add input="{HTTP_HOST}" pattern="^www\.mosaically\.com$" negate="true" /> 
                      </conditions> 
                      <action type="Redirect" url="http://www.mosaically.com/{R:1}" /> 
                  </rule> 
              </rules> 
          </rewrite> 
      </system.webServer> 
      

      【讨论】:

      • 这会导致重定向循环。
      • 为什么要在 MVC 中这样做???这在 IIS 级别处理得更好——它是全局的并且速度更快。
      • 我想我想在 IIS 中执行此操作,但由于重定向循环,它现在无法正常工作。
      • 实际上,它根本不起作用。如果我只是将其复制粘贴到我的 web.config 中,则不会执行任何操作
      • 您使用哪个网络服务器来测试这个?如果您使用的是 IIS 7+,您是否在集成管道模式下运行?
      【解决方案3】:

      我认为你应该这样使用

      在你 global.aspx 中

          protected void Application_BeginRequest()
              {
                  string rudsiteurl = HttpContext.Current.Request.Url.AbsoluteUri;
                  if (rudsiteurl.Contains("http://www.mosaically.com"))
                  {
                      Response.Status = "301 Moved Permanently";
                      Response.AddHeader("Location", "http://www.mosaically.com/");
                  }
      
              }
      

      我想这会对你有所帮助...

      【讨论】:

        猜你喜欢
        • 2013-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-29
        • 1970-01-01
        • 2013-03-04
        • 2011-10-19
        • 2010-12-28
        相关资源
        最近更新 更多