【问题标题】:Need help configuring 301 permanent redirect in Apache for non www需要帮助在 Apache 中为非 www 配置 301 永久重定向
【发布时间】:2011-01-17 03:40:19
【问题描述】:

我正在尝试将我的 Apache 2.2 版本配置为在有人键入我的 url 而没有 www.我想在 httpd.conf 中配置它,如果可能的话不使用 .htaccess。我尝试使用永久重定向,但第一个变量必须是目录而不是 url。任何想法如何使用 Apache 中的 301 重定向配置将 boom.com 请求重定向到 www.boom.com 的任何想法?谢谢

【问题讨论】:

    标签: apache redirect


    【解决方案1】:

    添加以下内容:

    # Canonical hostnames
    RewriteEngine On
    RewriteCond %{HTTP_HOST}   !^www\.boom\.com [NC]
    RewriteCond %{HTTP_HOST}   !=""
    RewriteRule ^/(.*)         http://www.boom.com/$1 [L,R=301]
    

    这会将所有与 www.boom.com 不匹配的请求重定向到 www.boom.com,并使用相同的查询路径。 (例如,boom.com/foo?foo=bar 将被重定向到 www.boom.com/foo?foo=bar)。

    【讨论】:

    • 我们已经有了一整套 RewriteCond 行。我宁愿不要弄乱这些。这是唯一的选择吗?
    • 您可以将额外的 RewriteCond 条目放在 VirtualHost 块中以将它们与其余部分隔离?
    【解决方案2】:

    如果您已命名虚拟主机,您可以将@tux21b 提供的额外 RewriteCond 条目放入其中以隔离它们。此外,如果你有 mod_alias 你可以试试这个应该做同样的事情:

    <VirtualHost boom.com:80>
        RedirectMatch permanent /.* http://www.boom.com$0
    </VirtualHost>
    

    如果有理由使用其中一个,我相信有人会发表评论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      • 2011-11-13
      • 1970-01-01
      • 2017-06-02
      • 2011-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多