作为Yahoo points this out,我希望能够做两件事:
'/img/st.jpg'
),而是返回完整路由(如'//s1.mysite.com/st.png'
)等等:增量计数器(=>下一个静态链接应该像{ {1}}的 2 '//s
).mysite.com/whatever.png'
我们 '//s1.
和.mysite.com/st.png'
fr '//s1.
)你会怎么做?我可以轻松地执行Apache规则,如:
.mysite.com/st.png'
我不在这里,但我对RewriteRules没有任何问题。问题在于构建具有正确“优化”URL的网页。你会怎么做?
如果我不够清楚,我很抱歉,所以我会给你一个真实的例子:我想转换这段代码:
RewriteCond %{HTTP_HOST} ^([a-zA-Z0-9\-]+)\.((([a-zA-Z0-9\-]+)\.)+)([a-zA-Z0-9\-]+)\.(fr|com|net|org|eu)$
RewriteRule BLABLABLABLA
到
<img src="/p/s/pizza.png" alt="aaa" />
<div class="img-large">
<img src="/l/l/pizza.png" alt="bbb" />
</div>
(我没有写Twig模板代码以保持尽可能清晰)。 你会怎么做?
答案 0 :(得分:0)
Symfony 2.2支持主机路由:http://symfony.com/doc/master/components/routing/hostname_pattern.html
如果您使用的是Symfony 2.1或更低版本,则不能使用子域进行路由本身,但您可以设置一个侦听器,以根据子域对页面加载执行某些操作。
示例监听器:
#config.yml
services:
myListener:
class: myApp\MyBundle\Controller\MyListener
arguments:
container: "@service_container"
tags:
- { name: kernel.event_listener, event: kernel.request, method: onKernelRequest, priority: 64 }
class MyListener extends controller
{
public function __construct($container)
{
$this->container = $container;
}
public function onKernelRequest(GetResponseEvent $event)
{
$currentHost = $request->getHost();
// do something, i.e set the language
}
}
答案 1 :(得分:0)
扩展路由生成器。我想说添加一个名为hostname的附加参数,让我们说一下generateRoute方法。下面给出了如何覆盖路由生成器的简单示例:
Custom url generator class 和 http://symfony.com/doc/master/cookbook/bundles/inheritance.html
然后,您可以创建一个专门用于静态资产的自定义Twig标记,您可以在其中调用新的generateRoute方法,使用您想要的任何策略设置名为hostname的新自定义参数(随机,基于某种递增逻辑(也许使用会话))。这只是概念的证明,需要一些谷歌搜索和阅读文档,但没有理由它不应该工作......