2010-08-16 17 views
6

Sorgulama parametrelerini SSI'ya aktarma konusunda sorun yaşıyorum. SSI'm neden çalışmıyor?

Başka PHP içinde bir PHP dosyası dahil çalışıyorum: (yukarıdaki satırı içeriyor) benim hellotest.php belge kök klasörü bulunuyorsa

<!--#include virtual='/ssi/test.php?x=hello' --> 

Bu, düzgün yürütür.

Bununla birlikte, template.phtml öğesinin (aynı zamanda /public_html/hellotest.php) (aynı proje için Zend Framework'ü kullanıyorum) içinde aynı şeyi yapsam, test.php çağrılır ve herhangi bir sorgulama olmadan çalıştırılır. parametreler (bu durumda x = merhaba). Zend_framework şablonlarimdan hiçbir sorgu parametresi test.php'ye aktarılmamıştır.

Bu, zend framework'ün .htaccess kullandığı yolla ilgili bir şey var mı?



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] 

DÜZENLEME: İşte (/public_html/.htaccess Web köküne): Benim .htaccess dosyalarının bir kopyasıdır Geçenlerde URL'den alınan SGK içine parametreleri geçirir ki öğrendim. Yani eğer tarayıcımda http://www.test.com/controller/action?param1=something yazıyorsa, aslında param1'i SSI'ya geçirecek, ancak SSI hattında sahip olduğum paramları tamamen yok sayacak. ... kimsenin tecrübesi var mı?

EDIT2 - Tim Fountain'a yanıt olarak: doğru, test.php adresim public_html/ssi/test.php dizinindedir. Ancak, ZF tarafından her zaman ayrıştırılan bir ZF şablon dosyasından arıyorum. "ZF tarafından ayrıştırılmadığı sürece" olarak adlandırdığınız şey. Benim test.php'de basit çıktı var_dump ($ _ GET) - başka bir şey bu php dosyasında, sadece bir satırda. Ve bunu ZF şablon dosyasından aldığım şekilde: <!--#include virtual='/ssi/test.php?x=hello' -->

. garip olan şu ki, eğer http://mydomain.com/controller/action/?x=hi_there yazıyorsam, bu X paramimi SSI satırına iletecek ve orjinalde ne varsa yazdım (x = merhaba). URL’de hiçbir şey iletmezsem, SSI’ya hiçbir şey geçmez.

+0

Sadece PHP kullanamazsınız herhangi bir sebep içerir?

+0

evet, SSI önbellek mekanizmalarına ihtiyacım var ... işlev bu durumda bana yardımcı olmaz. – Gotys

+0

Apache'niz PHP betikleri olarak .phtml dosyalarını işlemek için yapılandırılmış mı? –

cevap

1

Ben SSI bu nedenle bu uzun bir çekimin bir şeydir bu şekilde PHP ile kullanılan görmedim, ancak değiştirmeyi deneyin edebilirsiniz:

AddOutputFilter INCLUDES .php 

için:

AddOutputFilterByType INCLUDES text/html 

öyle nedeni çalışmaz, dosyalarınızın artık bir .php uzantılı (veya herhangi bir uzantı) olmamasıdır, çünkü index.php aracılığıyla her şeyi yönlendiriyorsunuz. Önerdiğim değişiklik, uzantıyı yapmak yerine, SSI ayrıştırıcısına rağmen tüm metin/html çıktısını (PHP'yi içermelidir) filtreleyecektir. önbelleğe alma ne tür SSI kullanmanızı gerektirir http://www.zytrax.com/tech/php/php_ssi.htm

aracılığıyla

virtual ("/ssi/test.php?x=hello"); 

: Yerine SSI kullanmanın

+0

Hmm .. Bu işe yaramadı .. Bir şey kırmadı, ama hiçbir şey ya da bir şey yardımcı olmadı ... – Gotys

+0

Ben şimdi bu yerel denedim ve PHP dosyası olduğu sürece, benim için çalıştığı görünüyor dahil ZF tarafından ayrıştırılmamış.Ben test.php dosyanızın public_html/ssi/test.php adresinde olduğunu varsayalım test.php'deki sorgu params'larına erişmek için mi kullanıyorsunuz? –

2

Eğer php sanal işlevini kullanarak deneyebilirsiniz içerir? Zend_Cache_Frontend_Output gibi bir şey kullanamaz mısın?

+0

Önerinizi denedim, ama bu bir şey yapmaz .. Bu arada, bu soruyu yanıtlamak için şu soruyu yanıtlamaya devam edeceğim: Uygulamam yoğun bir şekilde Vernikleme için Vernik kullanır, Vernik SSI'ya benzer bir şekilde ESI dediği bir şeyi kullanır. Fakat başvurumu bir şekilde yazmak istiyorum, böylece Varnish herhangi bir nedenden dolayı başarısız olursa, uygulama ESI'den otomatik olarak SSI'ya düşecektir. Bu yüzden SSI çalışmasını bir şekilde yapmam gerekiyor ... ama henüz şans yok. – Gotys