使用httpd.conf将非www重定向到www

时间:2011-03-01 03:28:51

标签: apache redirect

是否可以使用httpd.conf从非www版本重定向到我的网站到网站的www版本?

3 个答案:

答案 0 :(得分:1)

两个选项:

1

<VirtualHost *:80>
  ServerName example.com
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^example.com
  RewriteRule ^/(.*)$ http://www.example.com/$1 [L,R=301]
</VirtualHost>

2

<VirtualHost *:80>
  ServerName example.com
  Redirect 301 / http://www.example.com
</VirtualHost>

希望这会有所帮助。

答案 1 :(得分:0)

我确信其中一个Apache boffins会有一个更优雅的解决方案,但由于我有限的apache经验,我的目标是使用vhosts模块(虚拟主机)实现这一目标。我使用它的经验仅限于将Apache配置为反向代理。反向代理通常接收并检查传入请求,然后代表客户端生成新请求到vhosts配置中指定的其他位置。此应用程序中新请求的标准通常是域名,因此,可以帮助您,因为您可以使URL www.mydomain ...看起来与mydomain相同...

首先,在httpd.conf中启用代理模块。

LoadModule negotiation_module modules/mod_negotiation.so
LoadModule proxy_module modules/mod_proxy.so

然后通过httpd.conf

包含vhost配置
Include conf/extra/httpd-vhosts.conf

在httpd-vhosts.conf中启用端口80上的命名虚拟主机

NameVirtualHost *:80

然后为您的网站创建条目。请注意,新位置URL来自Proxies透视图。这可能只是localhost来简化事情。

<VirtualHost *:80> 
    ProxyPreserveHost On
    ProxyRequests off
    ServerName myalis.mydomain.com
    ProxyPass / http://newlocation.mydomain.com/
    ProxyPassReverse / http://newlocation.mydomain.com/
</VirtualHost>

您可以使用此方法访问防火墙后面的其他服务器上的文件,从而允许多个服务器从外部人员角度有效地共享端口80以用于Web流量。您还可以更改请求中的端口,以便托管在另一个端口上的站点看起来位于端口80或其他位置。

不要忘记在更改之前备份文件,并在配置更新后重新启动Apache。 有关Apache作为反向代理的更多信息,请访问:

Configure Apache as a Reverse Proxy

Apache Reverse Proxies

答案 2 :(得分:-2)

Redirecting www to non-www - 使用提供的说明。在里面申请&lt;目录&gt;在httpd.conf中,如果不使用.htaccess。需要ModRewrite。