Mojolicious中的域依赖路由

时间:2013-07-15 14:21:02

标签: routing mojolicious mojo

我正在写一个Mojolicious网站,需要根据域名路由到某些文件。即:

mydomain.com/foo -> controllerA#foo
mydomain.es/foo  -> controllerB#foo

文档提供了以下解决方案:

$r->get('/foo')->over(host => qr/mydomain\.com/)->to('controllerA#foo');
$r->get('/foo')->over(host => qr/mydomain\.es/)->to('controllerB#foo');

但也警告我,这将禁用路由缓存。

有更好的方法吗?如果没有,那么路由缓存被禁用有多糟糕?这个网站需要能够处理很多请求(最多10.000 /小时),所以我可以想象路由缓存是首选。

谢谢!

2 个答案:

答案 0 :(得分:0)

想到的一种方法是在mojolicious看到它之前重写请求URI。例如:

mydomain.com/foo -> mydomain.com/foo/com
mydomain.es/foo  -> mydomain.com/foo/es

然后添加一些路线:

$r->get('/foo/com')->to('controllerA#foo');
$r->get('/foo/es')->to('controllerB#foo');

答案 1 :(得分:0)

我不知道你是如何部署这个应用程序的,但如果你使用Apache或NGIX作为反向代理,你可以在那里处理域路由并重写它。