我有两个问题。
首先,我需要在我的网站上进行推荐。在PHP中,它看起来像这样:www.mysite.com/join?ref=100
然后在页面上$_get(ref);
Zend不喜欢这个,所以我该如何实现呢。
第二个问题是我如何在我的网站上使用框架拥有子域名。我想在我的网站上放置一个论坛,并尝试了一个子域并加载它,但它不会起作用,因为Zend将所有内容推送到index.php
。那么如何让它存在于同一个站点上。我不能把它放在一个模块中,因为它本身就是一个网站。没有使用另一个域我被卡住了。
感谢您的帮助。
答案 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)
关于子域名的第二个问题,似乎有三个问题:
在网络级别,您将配置托管环境,以便所有子域指向托管环境中的单个文件夹。然后在那里部署标准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]