Symfony 登录ESI组件中的缓存页面会在/\u internal/secure/../none.html上重定向

Symfony 登录ESI组件中的缓存页面会在/\u internal/secure/../none.html上重定向,symfony,varnish,esi,Symfony,Varnish,Esi,我刚刚设置了varnish,在投入生产之前,我在8080端口上做了一些测试 我注意到,如果我在缓存页面上: /** * @Cache(smaxage="10800") * @Route("/{_locale}/", name="homepage2", requirements={"_locale" = "en|fr"}) * @Template() */ public function indexAction() { return array(); } 我尝试通过ESI中包含的

我刚刚设置了varnish,在投入生产之前,我在8080端口上做了一些测试

我注意到,如果我在缓存页面上:

/**
 * @Cache(smaxage="10800")
 * @Route("/{_locale}/", name="homepage2", requirements={"_locale" = "en|fr"})
 * @Template()
 */
public function indexAction()
{
    return array();
}
我尝试通过
ESI中包含的组件登录(不使用外部服务,而是使用普通登录)

    {% render "GamerCertifiedHomeBundle:Home:login" with {}, { 'standalone': true } %}
它最终将我重定向到一个没有样式、没有标题的页面上,url
…:8080/\u internal/secure/MyBundleHomeBundle:Home:login/none.html

/

如果我回到主页,我就登录了

我怎样才能避免呢

编辑:


在分析中的问题后,我发现安全成功重定向的
\u target\u path
以下一种方式生成:

<input type="hidden" name="_target_path" value="{{ app.request.uri }}" />
  • 在控制器中,只需将其传递给视图

     public function yourAction ($uri)
     {
         ...
         return array('uri' => $uri);
     }
    
  • 在模板中使用它

      <input type="hidden" name="_target_path" value="{{ uri }}" />
    
    
    


  • 愉快!;)

    在分析中的问题后,我发现安全成功重定向的
    \u target\u path
    以下一种方式生成:

    <input type="hidden" name="_target_path" value="{{ app.request.uri }}" />
    
  • 在控制器中,只需将其传递给视图

     public function yourAction ($uri)
     {
         ...
         return array('uri' => $uri);
     }
    
  • 在模板中使用它

      <input type="hidden" name="_target_path" value="{{ uri }}" />
    
    
    


  • 愉快!;)

    只是为了确定-您是否忘了在
    routing.yml
    中包含
    \u internal
    路由?是的,我确定,我已经取消了“routing.yml中的内部路由”的注释,您使用的是什么-nginx还是apache?@theCatoneftFlat Apache2您可以将配置上传到某个地方吗?只是为了确定-您是否忘了将
    \u internal
    路由包含在
    routing.yml
    中?是的,我确定,我已经在routing.yml中取消了对_internalroute的注释,您使用的是-nginx还是apache?@thecatonefflat apache2您可以将您的配置上传到某个地方吗?我的VCL如下:我没有转发端口,但我有req.http.auth,这是使用ESI时必须记住的一点!!谢谢,我的VCL如下:我没有转发端口,但我有req.http.auth,这是使用ESI时必须记住的一件事!!谢谢