1

我使用 symfony2 routing.yml 调用主页:

web_homepage:
    pattern:  /
    defaults: { _controller: SWebBundle:Default:index }

在此页面中,我调用 Require,Backbone,使用 PushState,一切正常,但是,如果一个用户转到,例如:

example.com /categories/animals

并复制这个url直接访问,Symfony2返回404

我也使用模式 '/config/...' 和 '/api/...' 进行很多调用,以及 login/login_check

好吧,我想如果没有出现在路由中的所有调用都存在任何参数“默认”,或者排除配置和 api,因为我们从主干.js 控制器 404。

谢谢^^

4

1 回答 1

1

这是我对 Symfony 2.3.2 的解决方案:

路由.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>
于 2013-08-07T10:26:56.350 回答