我有问题,从我的zend框架应用程序中传递查询参数到SSI包括。为什么我的SSI不工作?
我想包括另一个PHP中的PHP文件:
<!--#include virtual='/ssi/test.php?x=hello' -->
这正确执行,如果我的hellotest.php(其中包含上述行)驻留在我的文档根目录。
如果,但是我在我的template.phtml(而不是/public_html/hellotest.php)中做同样的事情(我在这个项目中使用Zend Framework),test.php被调用并且执行时没有任何查询参数(在这种情况下x = hello)。没有查询参数从withitn我的zend_framework模板传递到test.php。
这和zend框架使用.htaccess的方式有什么关系吗? 这里是我的.htaccess文件副本(在Web根:/public_html/.htaccess)
SetEnv APPLICATION_ENV development
AddOutputFilter INCLUDES .php
RewriteEngine On
RewriteRule (.*/?)(.*css)$ combine.php?type=css&files=$1$2 [NC,L]
RewriteRule (.*/?)(.*js)$ combine.php?type=js&files=$1$2 [NC,L]
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
编辑:我最近发现,它会传递参数到SSI从URL拍摄。因此,如果在我的浏览器中输入http://www.test.com/controller/action?param1=something,它实际上会将param1传递给SSI,但它将完全忽略我在SSI行上的参数。 ...有谁有这方面的经验?我的test.php是在public_html/ssi/test.php ..但是,我从一个ZF模板文件调用,它被ZF解析总是..不确定..不确定“只要它没有被ZF解析”,你所要做的就是什么。在我的test.php中,我简单地输出了var_dump($ _ GET) - 没有其他任何东西在那个php文件中,只有那一行。我从ZF模板文件中调用它的方式如下所示:<!--#include virtual='/ssi/test.php?x=hello' -->
。奇怪的是,如果我键入http://mydomain.com/controller/action/?x=hi_there,它实际上会将该X参数传递给我的SSI包含行,并将覆盖原来在那里的任何内容(x = hello)。如果我没有在URL中传递任何内容,则不会传递给SSI。
任何你不能只使用PHP的原因包括? <?php $ x ='hello';包括'test.php'?> – 2010-08-16 13:26:47
是的,我需要SSI,因为缓存机制... include函数在这种情况下不会帮助我。 – Gotys 2010-08-16 15:14:29
您的Apache配置为将.phtml文件作为PHP脚本处理吗? – 2010-08-16 17:33:08