2013-07-12 37 views
1

我用的Symfony2的routing.yml呼叫主頁:Symfony2中,骨幹網和pushState的

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

在這個頁面我叫要求,骨幹,使用pushState的,一切OK,但是,如果一個用戶去,爲例如:

example.com /分類/動物

並複製此網址直接訪問,Symfony2的返回404

我使用太'/ config/...'和'/ api/...'爲很多電話,並登錄/ login_check

嗯,我想如果存在任何參數'默認'不出現在路由中,或者排除config和api,因爲我們的控制器404來自backbone.js。

感謝^^

回答

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>