我正在写一个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 /小时),所以我可以想象路由缓存是首选。
谢谢!
答案 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作为反向代理,你可以在那里处理域路由并重写它。