1

我正在通过 VirtualHost 配置文件中指定的“别名”指令托管一个具有 www.domain.com 和 domain.com 两个地址的域:

<VirtualHost *:80>
   ServerName domain.com
   ServerAlias www.domain.com
   DocumentRoot /var/www/domain.com/current/public/
   <Directory /var/www/domain.com/current/public/>
     AllowOverride all
     Options -MultiViews
     Order allow,deny
     Allow from all
   </Directory>
</VirtualHost>

现在http://www.domain.comhttp://domain.com转到相同的内容。我需要将对 www.domain.com 的每个请求重定向到 domain.com 以及将 www.domain.com/something 重定向到 domain.com/something。

我只是想知道将所有流量从 www.domain.com 重定向到 domain.com 的最佳做法。应该在 Apache、Passenger 还是 Rails 级别完成?如何?301重定向?

任何想法表示赞赏。谢谢你。

编辑:

现在的工作配置是这个(带有“永久重定向”):

<VirtualHost *:80>
  ServerName www.domain.com
  Redirect permanent / http://domain.com/
</VirtualHost>


<VirtualHost *:80>
  ServerName domain.com
  DocumentRoot /var/www/domain.com/current/public/
  <Directory /var/www/domain.com/current/public/>
    LimitRequestBody 4096000
    AllowOverride all
    Options -MultiViews
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>
4

1 回答 1

3

解决此问题的最佳方法是使用放置在虚拟主机中的 Redirect 指令。

<VirtualHost *:80>
  ServerName www.example.com

  Redirect / http://example.com/
</VirtualHost>

<VirtualHost *:80>
  ServerName example.com
</VirtualHost>

参考这里:http ://httpd.apache.org/docs/2.2/rewrite/remapping.html#canonicalhost

于 2012-02-03T07:18:27.410 回答