【问题标题】:How do I make sure my site loads with and without www?如何确保我的网站在有和没有 www 的情况下加载?
【发布时间】:2014-02-07 01:28:44
【问题描述】:

我在一个可以正常加载网址中 wwww 的网站上工作:http://wwww.flowerwood.com,但是,如果我删除 www,Chrome 无法找到该网站。

我尝试根据entry 添加一个 .htaccess 规则,但 Chrome 仍然报错。

这是我使用的代码:

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

解决这个问题的正确方法是什么?

谢谢。

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    这是一个 DNS 问题,而不仅仅是一个 htaccess 问题。

    [~]$ nslookup www.flowerwood.com
    Server:         10.1.1.10
    Address:        10.1.1.10#53
    
    Non-authoritative answer:
    Name:   www.flowerwood.com
    Address: 192.254.149.221
    
    [~]$ nslookup flowerwood.com
    Server:         10.1.1.10
    Address:        10.1.1.10#53
    
    Non-authoritative answer:
    *** Can't find flowerwood.com: No answer
    

    您需要为您的域注册一个A 记录,而不仅仅是您的www 主机。

    【讨论】:

    • 嗨,这很好奇。该网站已经运行了一段时间。我会调查 DNS 问题,看看发生了什么。谢谢。
    【解决方案2】:

    要始终添加 www,您可以使用:

    RewriteEngine On
    
    RewriteCond %{HTTP_HOST} !^www\. [NC]
    RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L]
    

    但我不确定为什么 chrome 使用 wwww 如果你想强制 wwww 使用这个:

    RewriteCond %{HTTP_HOST} !^wwww\. [NC]
    RewriteRule ^ http://wwww.%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L]
    

    【讨论】:

      【解决方案3】:

      到非 www 版本使用以下:

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

      这会将 www 重定向到您网站的非 www 版本,您将能够处理重复内容问题。

      【讨论】:

        猜你喜欢
        • 2018-09-28
        • 2016-07-14
        • 1970-01-01
        • 2015-08-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-01
        • 1970-01-01
        相关资源
        最近更新 更多