【发布时间】:2014-07-22 21:34:46
【问题描述】:
我使用 Mojolicious(不是 lite)和 morbo 服务器。 如何将来自http://www.domain.org 的请求重定向到http://domain.org?
【问题讨论】:
标签: redirect mojolicious
我使用 Mojolicious(不是 lite)和 morbo 服务器。 如何将来自http://www.domain.org 的请求重定向到http://domain.org?
【问题讨论】:
标签: redirect mojolicious
您的域名 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 服务器进行调试。用于生产使用 hypnotoad 服务器。
【讨论】:
您必须拥有这两个域名,并且 www.domain.org 的 CNAME 或 A 记录指向 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
【讨论】: