我有問題,從我的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