2017-10-09 66 views

回答

0

代碼快速峯值:是的。永久重定向發生在I18nRouter(這被稱爲有重定向控制器)

https://github.com/schmittjoh/JMSI18nRoutingBundle/blob/master/Router/I18nRouter.php#L258

您可以覆蓋I18nRouter內側(match()方法應該是相關的位),改變$permanentfalse

有關在Symfony中覆蓋的更多信息,請檢查https://symfony.com/doc/current/bundles/override.html

+0

感謝您的快速回復。我可以做到這一點,但我必須複製這個非常長的方法的代碼,並且不保存更新(因爲它是I18Router.php中的私有方法)。有沒有其他簡單而又節省的方法來做到這一點? – Mojo

+0

@Mojo覆蓋控制器中的redirectAction並對其進行擴展(例如,像您重寫FOSUserBundle中的控制器),但在執行父:: redirectAction() – Koalabaerchen

+0

之前更改$ permanent。這是個好主意。但我無法讓覆蓋工作。我創建了一個實現以下功能的新Bundle: 'public function getParent(){return'JMSI18nRoutingBundle'; }' 然後我創建了一個控制器,它擴展了Bundle中的RedirectController並插入'redirectAction()'來覆蓋它。在那裏,我改變了'$ permanent',並用ne變量調用'return parent :: redirectAction()',但沒有任何反應。我也插入了一個'die()'來測試它,但是網站一直在運行。 – Mojo