从symfony 1.4中的URL跳过控制器名称

时间:2012-10-19 05:10:54

标签: php symfony1 symfony-1.4

我在symfony 1.4中有一个现有的项目

对于静态页面,我们使用提供以下URL的模块页面:

http://www.example.com/page/aboutus
http://www.example.com/page/faq
http://www.example.com/ (page/index method, points to method page/home)

对于新要求,我们需要格式为URL的网址:

http://www.example.com/aboutus
http://www.example.com/faq
http://www.example.com/  (index/home method of page module; working as page is default module)

有16个这样的静态页面,所有这些页面都列在page模块下。截至目前,我计划创建16个新模块,将每个静态页面放在新模块的index方法中,但我认为这是一个糟糕的解决方案,希望symfony绝对不是以这种方式使用的。

有没有办法从URL跳过模块名称,至少对于默认模块?

2 个答案:

答案 0 :(得分:2)

您可能希望使用重写规则,如中所述 http://corz.org/serv/tricks/htaccess2.php

答案 1 :(得分:1)

使用symfony的路线功能!

routing.yml

aboutus_page:
  url:   /aboutus
  param: { module: page, action: aboutus }

faq_page:
  url:   /faq
  params: { module: page, action: faq }

home_page:
  url:   /
  params: { module: page, action: index }

# your other routes
# ...

actions.class.php模块的page将如下所示:

class pageActions extends sfActions
{
   public function executeAboutus (sfWebRequest $request)
   {
      // ...
   }

   public function executeFaq (sfWebRequest $request)
   {
      // ...
   }