mod_headers dosya PHP olduğunda başlık göndermiyor


9

.Htaccess dosyamı şu şekilde ayarladım:

 Header set MyHeader "I'm Set!"

http://example.com/test/Varsayılan dizin dosyası olmayan bir dizine ( ) gidip ağ etkinliğini (bu durumda Chrome ile) görüntülersem, başlığın gönderildiğini görebilirim. Bir php dosyasına ( http://example.com/test/test.php) gidersem , başlık gönderilmez.

Bir index.html (sadece <pre>Hiiçerik olarak) oluşturdum ve gönderilir. Dosya adını .phpbaşlık olarak değiştiriyorum. Orignal'ı test.phpolarak değiştirirsem, test.htmlçöp görünümlü kodu verir ve başlık gönderilir. Şunu değiştirirsem test.phpiçin test.png, bir kırık görüntü simgesi almak ve başlık gönderilir.

Bu nedenle, mime tipi ve dosya uzantıları açısından yukarıdakilerin ötesinde test yapılmadan, yalnızca .phpdosyaların (yasal veya başka türlü) .htaccess kurallarının uygulanmayacağı veya özellikle mod_headers yönergelerinin ayarlanmayacağı görünür . Ama bunun için nasıl test edeceğimi bilmiyorum ve paylaşılan bir sunucu olduğu için, httpd.confetrafta dolaşmak için erişimim yok .

Apache neden php dosyaları için üstbilgi gönderme atlamak hakkında herhangi bir fikir?

Ayrıca denedim:

 <FilesMatch "\.(php)$">
     Header set MyHeader "I'm Set!"
 </FilesMatch>

PHP / CGI'dan PHP / FastCGI'a güncelleme düzeltildi gibi görünüyor. Kök nedeninin ne olduğunu bilen biri varsa hala geri bildirim almaya çok hevesliyim.
Anthony

1
Anthony, mod_fastcgi kullandın mı? Tam olarak aynı davranışı yaşıyorum ve bana mod_fastcgi mod_headers işlevselliği tatili gibi görünüyor. Bu hata raporunu dün yayınladım: bugs.launchpad.net/ubuntu/+source/libapache-mod-fastcgi/+bug/…
Onkeltem

burada aynı: / herhangi bir haber veya geçici çözüm? Bunun daha fazla vakada bir sorun olmadığını hayal bile edemiyorum ...
Adrian Föder

Yanıtlar:


4

Bu, CGI komut dosyalarını çalıştırırken beklenen davranıştır. Mod_headers belgelerinin en son (2.4) sürümünden :

Varsayılan başarısızlık değerinin, aşağıda listelenenlere benzer koşullar altında her zaman değiştirilmesi gerekebilir. Ayrıca, bu yönergeyi her iki koşulda da tekrarlamanın bazı senaryolarda mantıklı olduğunu unutmayın, çünkü her zaman mevcut üstbilgilere göre bir başarısızlığın üst kümesi değildir:

[...]
CGI betiği tarafından oluşturulan bir üstbilgiyi değiştiriyor veya kaldırıyorsunuz, bu durumda CGI betiği varsayılan tabloda değil her zaman karşılık gelen tablodadır.

Orijinal sorun (belki de daha iyi bir açıklama ile) Hata 49308'de yer almaktadır .


Bunu doğru okuyorsam, kullanmak Header always set MyHeader "I'm Set!"sorunu çözmüş olmalı. Sanırım birisi bunu önerdiğinde bir cevap buldum ve bu durumda OP için de işe yaramadı. Ama denemek istediklerinden de eminim Header set always, bu yüzden bu öneri başarısız oldu.
Anthony

Hayır, geri alıyorum. O denemeye ctrl-z'd ve öyleydi Header always set. Alıntıyı yanlış mı okuyorum?
Anthony

Orijinal sorunuzda bu belirtilmemiş; setinden emin misin? Örneğinize Header always set MyHeader "I'm Set!"göre böyle bir şey olmalı .
Andrew

Apache'nin onayı olmadan da denedim, bu yüzden bir denemeden vazgeçmiş olabilirim. Ve şimdi işe yarıyor, sadece CGI'dan FastCGI'a geçiş olduğunu varsayarak sıkıştım, ama her yerde şüpheliyim.
Anthony
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.