Symfony 301在控制器中重定向

时间:2017-10-31 15:41:01

标签: php .htaccess symfony redirect

我的Symfony应用中有一个参数Eventid的实体slug。 参数slug可以为空,不是必需的,如果缺少,则使用id链接到单个事件页面构建。但是,如果设置了slug,则使用此参数构建url。

任务是为具有slug的事件创建301重定向。我正在尝试使用symfony方法redirect()但我遇到了一个问题:当我第一次设置slug时,它工作正常并将我从网址event/3替换为event/my-event-slug。但是当我删除slug或更改它时,浏览器仍然会将我重定向到我提供的第一个slug。

我正在Chrome控制台中查看它,它向我显示我的重定向301是从缓存中加载的。

如何防止将重定向保存到缓存中?或者如何在控制器中以其他方式解决此问题?

2 个答案:

答案 0 :(得分:1)

试试这个:

return $this->redirect($url, 301);

答案 1 :(得分:0)

试试这个

$object = new Event();

        $router = $this->get('router');

        $url = $object->getSlug() ? $router->generate('my_route', $object->getSlug()) : $router->generate('my_route', $object->getId());

        $this->redirect($url,301);