使用PHP-FPM的Sonata Admin Symfony2不遵循生产中的内部重定向

时间:2016-02-25 16:33:26

标签: php apache .htaccess symfony sonata-admin

我不确定Sonata是否与此有关或者它与PHP-FPM有关,但是在制作时,当关注app.php时,不会遵循内部重定向。如果我访问/个人资料并且链接是/ profile /,我将被带到要求我点击/ profile /的页面。经过大量谷歌搜索并阅读本书后,我不知道该转向何处。

这是我的VirtualHost:

<VirtualHost *:80>
  ServerName mysite.com
  ServerAlias www.mysite.com mysite.com
  DocumentRoot /var/www/mysite/web
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  <FilesMatch \.php$>
      SetHandler proxy:fcgi://127.0.0.1:9000
  </FilesMatch>

  <Directory /var/www/mysite/web>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride All
      Require all granted
  </Directory>

在网页目录中我有一个.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ app.php [QSA,L]
</IfModule>

我已经访问了mysite.com/profile和mysite.com/app.php/profile的网站,仍然遇到同样的问题。

谢谢!

1 个答案:

答案 0 :(得分:1)

我们检查了Eugene,这里有两种可能的解决方案

首先让我们检查一下它发生的原因

它发生在奏鸣曲包中,我们有像这样的重定向事件监听器

 // display a validation page before redirecting, so the editor can edit the current page
    if ($page && $response->isRedirection() && $this->cmsSelector->isEditor() && !$request->get('_sonata_page_skip')) {
        $response = new Response($this->templating->render('SonataPageBundle:Page:redirect.html.twig', array(
            'response'   => $response,
            'page'       => $page,
        )));

        $response->setPrivate();

        $event->setResponse($response);

        return;
    }

你可以从中得到两种可能的解决方案之一

  1. 添加get param _sonata_page_skip=true
  2. 在我们的捆绑模板中覆盖重定向并生成response|raw