【发布时间】:2011-01-17 03:40:19
【问题描述】:
我正在尝试将我的 Apache 2.2 版本配置为在有人键入我的 url 而没有 www.我想在 httpd.conf 中配置它,如果可能的话不使用 .htaccess。我尝试使用永久重定向,但第一个变量必须是目录而不是 url。任何想法如何使用 Apache 中的 301 重定向配置将 boom.com 请求重定向到 www.boom.com 的任何想法?谢谢
【问题讨论】:
我正在尝试将我的 Apache 2.2 版本配置为在有人键入我的 url 而没有 www.我想在 httpd.conf 中配置它,如果可能的话不使用 .htaccess。我尝试使用永久重定向,但第一个变量必须是目录而不是 url。任何想法如何使用 Apache 中的 301 重定向配置将 boom.com 请求重定向到 www.boom.com 的任何想法?谢谢
【问题讨论】:
添加以下内容:
# 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)。
【讨论】:
如果您已命名虚拟主机,您可以将@tux21b 提供的额外 RewriteCond 条目放入其中以隔离它们。此外,如果你有 mod_alias 你可以试试这个应该做同样的事情:
<VirtualHost boom.com:80>
RedirectMatch permanent /.* http://www.boom.com$0
</VirtualHost>
如果有理由使用其中一个,我相信有人会发表评论。
【讨论】: