Я использую Mojolicious (не lite) и сервер morbo. Как я могу перенаправить запрос с http://www.domain.org на http://domain.org?
Mojolicious редирект с http://www.domain.org на http://domain.org
Ответы (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.
Вы должны владеть обоими доменными именами и иметь запись 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