0

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

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 个/小时),因此我可以想象路由缓存是首选。

谢谢!

4

2 回答 2

0

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

于 2013-07-29T15:18:32.483 回答
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');
于 2013-07-16T18:23:45.857 回答