Symfony / htaccess:将/ home添加到索引网址

时间:2014-04-29 21:58:27

标签: .htaccess symfony routing

我觉得有点不好并且对于这个问题感到羞愧,但是我已经看过谷歌并没有找到我的问题的答案。至少没有一个我能够正确理解。 我正面临着knppaginatorbundle和symfony的问题。我发现我的分页并没有使用基本/路线,但它实际上是在使用类似于/ home的路线。

我的问题是,如何修改我的.htaccess symfony文件,将用户从www.example.com重定向到www.example.com/home?

这是我的.htaccess:

<IfModule mod_rewrite.c>
    RewriteEngine On

    #<IfModule mod_vhost_alias.c>
    #    RewriteBase /
    #</IfModule>

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ app.php [QSA,L]

</IfModule>

<files php.ini>
  order deny,allow
  deny from all
</files>

1 个答案:

答案 0 :(得分:0)

实际上我找到了答案而且它不在.htaccess中......我担心在我说话之前我应该​​想到的证据:P

所以我最后通过在我的控制器中使用indexAction()来简单地重定向到另一个在同一个控制器中调用另一个动作listAction()的路径。这个listAction自然包含indexAction()最初包含的内容。那清楚了吗?这是代码;)

<?php

namespace Pf\Bundle\BlogBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;

class HomeController extends Controller
{
    public function indexAction()
    {
        return $this->redirect($this->generateUrl('pf_blog_index2'));
    }

    public function listAction()
    {
        $em    = $this->get('doctrine.orm.entity_manager');
        $dql   = "SELECT a FROM PfBlogBundle:Projects a ORDER by a.id DESC";
        $query = $em->createQuery($dql);

        $paginator  = $this->get('knp_paginator');
        $pagination = $paginator->paginate(
            $query,
            $this->get('request')->query->get('page', 1)/*page number*/,
            8 /*limit per page */
         );

        // Puis modifiez la ligne du render comme ceci, pour prendre en compte l'article :
        return $this->render('PfBlogBundle:Default:home.html.twig', array('pagination'=>$pagination));
    }

}

路线:

pf_blog_index:
    path:  /
    defaults: { _controller: PfBlogBundle:Home:index }

pf_blog_index2:
    path:  /home
    defaults: { _controller: PfBlogBundle:Home:list }

现在这对我来说听起来很明显,但我想这取决于你的观点。我觉得有点惭愧但我相信它对将来像我这样的人有益。