Mojolicious редирект с http://www.domain.org на http://domain.org

Я использую Mojolicious (не lite) и сервер morbo. Как я могу перенаправить запрос с http://www.domain.org на http://domain.org?


person user2427770    schedule 22.07.2014    source источник


Ответы (3)



Ваши доменные имена www.domain.org и domain.org должны быть преобразованы в один и тот же IP-адрес.

Например, в вашем файле App.pm у вас есть следующие строки:

$r->get('/')->to('main#index')->name('index');

В главном контроллере Mojolicious вы можете проверить свое доменное имя и выполнить перенаправление:

sub index {
        my $self = shift;
        my $host = $self->req->url->to_abs->host;
        return $self->redirect_to('http://domain.org') if $host eq 'www.domain.org';
}

Используйте morbo server только для отладки. Для производства используйте сервер hypnotoad.

person Logioniz    schedule 23.07.2014

Вы должны владеть обоими доменными именами и иметь запись CNAME или A для www.domain.org, указывающую на domain.org. Это действительно настройки DNS.

Теперь в вашем приложении Mojolicious вам может потребоваться учитывать тот факт, что вы получаете запросы на www.domain.org/someroute от одних пользователей и запросы на domain.org/someroute от других.

Есть несколько способов сделать это - в конце концов, это Perl.

Однако, если вы развертываете Mojolicious в производственной среде, я бы рекомендовал использовать настройку обратного прокси-сервера с Apache или Nginx.

Это позволит вам получать запросы с www.domain.org или domain.org и проксировать эти запросы в Hypnotoad. Таким образом, вашему приложению никогда не придется беспокоиться о том, какое имя хоста используется для доступа к нему.

http://mojolicio.us/perldoc/Mojolicious/Guides/Cookbook#Nginx http://mojolicio.us/perldoc/Mojolicious/Guides/Cookbook#Apache%2Fmod_proxy

person arafeandur    schedule 25.07.2014