Saya telah mengatur file .htaccess saya sebagai berikut:
Header set MyHeader "I'm Set!"
Jika saya pergi ke direktori itu ( http://example.com/test/
), yang tidak memiliki file indeks default, dan melihat aktivitas jaringan (dalam hal ini dengan Chrome), saya dapat melihat bahwa header sedang dikirim. Jika saya membuka file php ( http://example.com/test/test.php
), header tidak dikirim.
Saya telah membuat index.html (hanya <pre>Hi
dengan konten) dan dikirim. Saya mengubah nama file menjadi .php
, tanpa header. Jika saya mengubah orignal test.php
ke test.html
, itu output kode yang tampak sampah, dan header dikirim. Jika saya mengubah test.php
ke test.png
, saya mendapatkan ikon gambar yang rusak, dan header dikirim.
Jadi, tanpa pengujian di atas hal-hal di atas dalam hal tipe-mime dan ekstensi file, tampaknya hanya .php
file (yang sah atau tidak) yang diatur untuk tidak memiliki aturan .htaccess berlaku atau secara khusus arahan mod_headers. Tetapi saya tidak tahu bagaimana cara menguji ini dan karena ini adalah server bersama, saya tidak memiliki httpd.conf
akses untuk melihat-lihat.
Adakah alasan mengapa apache melewatkan pengiriman header untuk file php?
Saya juga sudah mencoba:
<FilesMatch "\.(php)$">
Header set MyHeader "I'm Set!"
</FilesMatch>
sumber
Jawaban:
Ini adalah perilaku yang diharapkan saat menjalankan skrip CGI. Dari versi terbaru (2.4) dari dokumen mod_headers :
Masalah aslinya (dengan, mungkin, penjelasan yang lebih baik) ada di Bug 49308 .
sumber
Header always set MyHeader "I'm Set!"
seharusnya memecahkan masalah. Saya pikir saya menemukan jawaban di mana seseorang menyarankan itu dan itu tidak berhasil untuk OP dalam kasus itu juga. Tetapi saya juga cukup yakin mereka mengatakan untuk mencobaHeader set always
, yang mungkin mengapa saran itu gagal.Header always set
. Apakah saya salah membaca kutipan?Header always set MyHeader "I'm Set!"
, sesuai dengan contoh Anda.