【问题标题】:Redirect from http://sitename.com to http://www.sitename.com从 http://sitename.com 重定向到 http://www.sitename.com
【发布时间】:2011-08-23 08:43:29
【问题描述】:

我正在使用 ASP.NET 4。我想做一个从 http://sitename.comhttp://www.sitename.com 的 301 重定向。

最好的方法(和可选方法)是什么?

我的网站也在 IP 地址上被编入索引。我怎样才能阻止它。

【问题讨论】:

    标签: asp.net asp.net-4.0


    【解决方案1】:

    你可以在Page_Load做一个简单的检查:

        protected void Page_Load(object sender, EventArgs e)
        {
            string serverName = HttpUtility.UrlEncode(Request.ServerVariables["SERVER_NAME"]); 
            string filePath = Request.FilePath;
            if (!serverName.ToLower().StartsWith("www.")) 
                serverName = "www." + serverName; 
            Response.Redirect("http://" + serverName + filePath); 
        }
    

    或者您可以将以下内容添加到 htaccess 文件中:

    Options +FollowSymlinks
    RewriteEngine on
    rewritecond %{http_host} ^domain.com [nc]
    rewriterule ^(.*)$ http://www.domain.com/$1 [r=301,nc] 
    

    domain.comhttp://www.domain.com 替换为您的域。

    【讨论】:

    • Response.Redirect 发出 302 重定向,而不是 301 重定向。 .htaccess 选项仅适用于 Apache,不适用于 IIS。
    • 你当然是对的...教我略读 OP 想要什么。
    【解决方案2】:

    我会在 IIS 级别执行 301 重定向,请参阅此博客帖子:SEO Canonical URLs And 301 Redirects In Windows IIS 6, IIS 7

    要阻止网站在 IP 地址 configure the "site" in IIS to have a host name 上被索引,请勿将其留空。

    【讨论】:

    • 我对 IIS 没有太多控制权。你能给我推荐一个替代方案吗
    • 如果您使用的是 IIS7 并且托管服务提供商为您提供了正确的权限,您可以在 Web.config 文件的 system.webServer 部分进行配置。
    • 是的,但是需要在服务器上安装 url 重写模块,看起来它不是。这就是为什么我需要一个替代品
    【解决方案3】:

    根据您的 DNS 提供商,他们可能会设置重定向,通常称为网络转发、网络别名或网络重定向。只要确保它是 301 而不是框架集。

    相关问题:Canonical name redirects in Godaddy?

    【讨论】:

      【解决方案4】:
      <rule name="Redirect to www">
        <match url="(.*)" />
        <conditions>
          <add input="{SERVER_PORT}" pattern="443" negate="true" />
        </conditions>
        <action type="Redirect" url="https://www.serdardemir.net/{R:1}" />
      </rule>
      

      您可以使用 url rewrite 将此规则添加到规则标记中

      【讨论】:

        【解决方案5】:
        <rule name="Redirect to WWW" stopProcessing="true">
                  <match url=".*" />
                  <conditions>
                    <add input="{HTTP_HOST}" pattern="^yoursite.com$" />
                  </conditions>
                  <action type="Redirect" url="http://www.yoursite.com/{R:0}" redirectType="Permanent" />
                </rule>
        

        这段代码对我有用。将此添加到 web.config 文件的规则部分

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-12-09
          • 1970-01-01
          • 2012-11-19
          • 2019-09-10
          • 2017-10-06
          相关资源
          最近更新 更多