我有一个symfony网站与许多页面,如
/page1
/page2
/page3/something/
etc...
在那些书页里,我有很多次提到"漂亮"这个词
我希望页面/dummy/page1
返回与/page1
完全相同的结果,但将所有出现的单词"pretty"替换为单词"beautiful"。其他页面也一样:/dummy/url
应该总是和/url
完全一样,但是用"beautiful"代替"pretty"
我找到了一个简单的方法来做到这一点:在app.php中,我在最开始添加:
if (strpos($_SERVER['REQUEST_URI'], '/dummy') !== false) {
$_SERVER['REQUEST_URI'] = str_replace('/dummy','',$_SERVER['REQUEST_URI']);
ob_start(replaceHTML($final_html))
}
然后直接
public function replaceHTML($html) {
return str_replace('pretty','beautiful',$html);
}
效果很好。
现在我需要把它做成一个bundle来共享。
问题是bundle的实例化似乎太晚了,这意味着在请求被处理之后,更改$_SERVER['REQUEST_URI']
在这一点上没有做任何事情,并且所有的/dummy/url请求返回404。
你知道我如何使用一个bundle来复制这个吗?
尝试为该页创建2个路由:
/**
* @Route("/dummy/page1", name="route_dummy_1")
* @Route("/page1", name="route_1")
*/
public function indexAction(Request $request)
{
...
}