Каков наилучший способ форсировать домен с помощью приложения rails? например: example.com вместо www.example.com - PullRequest
1 голос
/ 29 мая 2009

Мое приложение rails, кажется, ломается, когда оно отвечает на www.example.com, ранее оно работало нормально только с example.com ... однако я недавно переместил серверы и хотел бы знать, как лучше всего перенаправить все www.example.com просит перейти на http://example.com/.../

спасибо.

Ответы [ 4 ]

1 голос
/ 29 мая 2009

Это должно сработать, если у вас включен mod_rewrite

    RewriteEngine on

    RewriteCond %{HTTP_HOST} ^www.example\.com
    RewriteRule ^(.*)$ http://example.com$1 [R=301,L]
0 голосов
/ 30 мая 2009

Возможно, вы не захотите это слышать, но я предлагаю вместо этого исправить то, что ломается. Вы жестко закодировали свой домен где-то в своем приложении, возможно, в маршрутизации, но это невозможно определить без специфики ошибок, и вам нужно удалить это, чтобы вы или какой-либо другой сопровождающий не захотели придется иметь дело с этим снова в будущем.

0 голосов
/ 29 мая 2009

Согласно документации виртуального хоста Apache на основе имен первый виртуальный хост является хостом по умолчанию. Я использую это, чтобы сделать первую запись универсальной, которая перенаправляет каждый «неопределенный» запрос на основной сайт:

# Default catch-all
<VirtualHost *:80>
    # Note the lack of a ServerName
    RewriteRule ^(.*)$ http://www.example.com$1 [redirect=permanent]
</VirtualHost>

# Site 1 - www.example.com
<VirtualHost *:80>
    ServerName www.example.com

  [ the rest of the site config ]

</VirtualHost>

Для дополнительного кредита вы можете настроить DNS-запись с подстановочными знаками, чтобы каждый неопределенный хост (например, asdfasdfasdfas.example.com) был перенаправлен на www.example.com.

0 голосов
/ 29 мая 2009

Это зависит от настроек вашего сервера, и существуют разные способы. Вы можете просто ввести www в DNS для корневого домена, для одного пути. Если вы используете Rails за Apache, вы можете сделать это в Apache с помощью mod_rewrite. Если вы принимаете сетевые запросы прямо в Rails, например, с помощью mongrel (или webbrick), возможно, вам придется настроить эти серверы или использовать маршруты Rails?

Надеюсь, это поможет,

adricnet

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...