Rails / Passenger / Apache2: перенаправление с www.domain.com на domain.com - PullRequest
1 голос
/ 03 февраля 2012

Я размещаю домен с обоими адресами www.domain.com и domain.com с помощью директивы "alias", указанной в файле конфигурации VirtualHost:

<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.comи http://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>

1 Ответ

3 голосов
/ 03 февраля 2012

Самый лучший способ решить эту проблему - использовать директиву 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

...