我将symfony2 routing.yml用于呼叫主页:
web_homepage:
pattern: /
defaults: { _controller: SWebBundle:Default:index }
在这个页面中我调用Require,Backbone,使用PushState,一切正常,但是,如果有一个用户去,例如:
example.com / categories / animals
复制此网址并直接访问,Symfony2返回404
对于很多调用我使用了'/ config / ...'和'/ api / ...'模式,并且登录/ login_check
好吧,我想如果在路由中没有出现的所有调用都存在任何参数'default',或者排除config和api,因为我们是来自backbone.js的控制器404。
谢谢^^
答案 0 :(得分:1)
这是我对Symfony 2.3.2的解决方案:
<强> routing.xml 强>
<routes>
<route id="MyBundle.Default.index" path="/app">
<default key="_controller">MyBundle:Default:index</default>
</route>
<route id="MyBundle.Default.index2" path="/app/{url}">
<default key="_controller">MyBundle:Default:index</default>
<requirement key="url">.+</requirement>
</route>
</routes>
<强>控制器:强>
class DefaultController extends Controller
{
public function indexAction()
{
return $this->render('MyBundle:Default:index.html.twig');
}
}
原因https://stackoverflow.com/a/7892022我使用的原因是:
<requirement key="url">.+</requirement>