Zend框架问题

时间:2011-03-11 23:14:12

标签: zend-framework

我有两个问题。 首先,我需要在我的网站上进行推荐。在PHP中,它看起来像这样:www.mysite.com/join?ref=100然后在页面上$_get(ref); Zend不喜欢这个,所以我该如何实现呢。

第二个问题是我如何在我的网站上使用框架拥有子域名。我想在我的网站上放置一个论坛,并尝试了一个子域并加载它,但它不会起作用,因为Zend将所有内容推送到index.php。那么如何让它存在于同一个站点上。我不能把它放在一个模块中,因为它本身就是一个网站。没有使用另一个域我被卡住了。

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

获取GET参数,例如www.mysite.com/join?ref=100应该可以正常工作。假设join是您的控制器而index是您在该控制器中的操作,可以使用以下方式获取参数ref

    var_dump($_GET['ref']);
    // or
    var_dump($this->getRequest()->getParam('ref'));

所以我没有看到ZF不喜欢它的原因。

不幸的是,我不能帮助你解决第二个问题,因为我不知道。

答案 1 :(得分:2)

关于子域名的第二个问题,似乎有三个问题:

  1. 网络级路由
  2. 应用级路由
  3. 模块结构
  4. 在网络级别,您将配置托管环境,以便所有子域指向托管环境中的单个文件夹。然后在那里部署标准ZF安装,包括标准.htaccess

    在应用级别,您的单个ZF安装将接收所有子域的请求。然后,您可以使用ZF的应用程序路由机制来处理这些请求。特别是,您可以配置各种Zend_Controller_Router_Route_Hostname路由来处理所选控制器/操作的请求。

    最后一点是哪些控制器和动作?为每个子域创建一个单独的模块听起来是个好主意。因此,上面的Hostname路由可以检测子域并使用适当的模块(和控制器/操作)处理请求。

答案 2 :(得分:1)

你应该在.htaccess中编辑mod_rewrite规则

这是我的规则:

RewriteEngine on

#do not rewrite for existing files and content of css, js, skin, forum subfolders
RewriteCond %{REQUEST_URI} ^/(css|js|skin|forum)/ [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*) - [L]


RewriteRule ^(.*)$ index.php [L]