【问题标题】:Make apache automatically strip off the www.?让 apache 自动剥离 www.?
【发布时间】:2010-09-10 10:10:22
【问题描述】:

出于各种原因,例如 cookie、SEO,为了简单起见,我想让 apache 自动将任何对 http://www.foobar.com/anything 的请求重定向到 http://foobar.com/anything。我能想到的最好的方法是基于 mod_rewrite 的怪物,是否有一些简单的方法可以告诉它“将域 ABC 的所有请求重定向到 XYZ”?

PS:我找到了this somewhat related question,但它是针对 IIS 的,并且与我想要的相反。而且它仍然很复杂。

【问题讨论】:

    标签: apache redirect


    【解决方案1】:

    更简单,更容易从站点复制到站点:

    RewriteCond %{HTTP_HOST} ^www\.(.+)$
    RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
    

    【讨论】:

    • 这个解决方案比这里的其他解决方案要好得多。
    • 关于此解决方案需要注意的重要一点是,它将始终转发到 HTTP。更好的解决方案可能是pastebin.com/TjD6iha2
    【解决方案2】:

    使用带有一些 mod_rewrite 规则的 .htaccess 文件:

    RewriteEngine On
    RewriteRule ^www.SERVERNAME(.*) http://SERVERNAME$1 [L,QSA]
    

    我不确定$1 的语法是否正确,但它有据可查。 l 向浏览器发送location: header,QSA表示Query String Append。

    【讨论】:

      【解决方案3】:

      既然您提到使用 mod_rewrite,我建议在您的 .htaccess 中使用一个简单的规则 - 我觉得这并不可怕 :)

      RewriteCond %{HTTP_HOST} ^www\.foobar\.com$ [NC]
      RewriteRule ^(.*)$ http://foobar.com/$1 [L,R=301]
      

      【讨论】:

        【解决方案4】:

        很简单:

        <VirtualHost 10.0.0.1:80>
                ServerName www.example.com
                Redirect permanent / http://example.com/
        </VirtualHost>
        

        根据需要调整主机名和 IP :)

        【讨论】:

          【解决方案5】:

          如果你像我们一样使用 mod_rewrite,那就很简单了 ;)

          这是来自我的实时网站的 .htaccess 的一部分:

          RewriteEngine on
          
          # Catches www.infinite-labs.net and redirects to the
          # same page on infinite-labs.net to normalize things.
          
          RewriteCond %{HTTP_HOST} ^www\.infinite-labs\.net$
          RewriteRule ^(.*)$ http://infinite-labs.net/$1 [R=301,L]
          

          【讨论】:

            【解决方案6】:
            RewriteEngine On
            RewriteCond %{HTTP_HOST} ^www.domain.com$ [NC]
            RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
            

            这应该可以解决问题。

            【讨论】:

            • 注意^www.domain.com$:点匹配所有内容,因此应该被转义。看我的回答。
            • 这是我在一些网站上使用的,没有失败。
            • 是的,它可以在没有未转义的点的情况下工作,因为点也匹配点。出错的方法并不多。但最好避开点点滴滴,因为这样你就表达了你的意思。
            猜你喜欢
            • 2016-09-03
            • 1970-01-01
            • 1970-01-01
            • 2014-12-20
            • 1970-01-01
            • 1970-01-01
            • 2013-03-17
            • 2013-01-15
            相关资源
            最近更新 更多