mod_headers फ़ाइल PHP होने पर हेडर नहीं भेजते


9

मुझे मेरी .htaccess फ़ाइल निम्नलिखित में मिल गई है:

 Header set MyHeader "I'm Set!"

यदि मैं उस निर्देशिका ( http://example.com/test/) में जाता हूं , जिसमें कोई डिफ़ॉल्ट इंडेक्स फ़ाइल नहीं है, और नेटवर्क गतिविधि (इस मामले में क्रोम के साथ) देखें, तो मैं देख सकता हूं कि हेडर भेजा जा रहा है। अगर मैं एक php फ़ाइल ( http://example.com/test/test.php) में जाता हूं , तो हेडर नहीं भेजा जाता है।

मैंने एक index.html बनाया है (केवल <pre>Hiसामग्री के रूप में) और यह भेजा जाता है। मैं फ़ाइल का नाम .php, कोई हेडर नहीं बदलता । अगर मैं orignal test.phpको बदल देता हूं test.html, तो यह कचरा दिखने वाले कोड को आउटपुट करता है, और हेडर भेजा जाता है। यदि मैं बदल test.phpजाता test.pngहूं, तो मुझे एक टूटी हुई छवि आइकन मिलती है, और हेडर भेजा जाता है।

इसलिए, माइम-प्रकार और फ़ाइल एक्सटेंशन के संदर्भ में उपरोक्त परीक्षण के बिना, यह केवल .phpफाइलें (कानूनी या अन्यथा) प्रतीत होता है । लेकिन मुझे नहीं पता कि इसके लिए परीक्षण कैसे किया जाए और क्योंकि यह एक साझा सर्वर है, मेरे पास httpd.confप्रहार करने की पहुंच नहीं है ।

अपाचे क्यों php फ़ाइलों के लिए हेडर भेजना होगा के रूप में किसी भी विचार?

मैंने भी कोशिश की है:

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

PHP / CGI से PHP / FastCGI में अपडेट करने से लगता है कि इसे ठीक कर लिया गया है। मैं अभी भी प्रतिक्रिया पाने के लिए बहुत उत्सुक हूं अगर किसी को पता है कि मूल कारण क्या था।
एंथनी

1
एंथोनी, क्या आपने mod_fastcgi का उपयोग किया? मैं बिल्कुल उसी व्यवहार का अनुभव करता हूं और मुझे ऐसा लगता है कि mod_fastcgi mod_headers कार्यक्षमता को तोड़ता है। मैंने कल इस बग रिपोर्ट को पोस्ट किया: Bugs.launchpad.net/ubuntu/+source/libapache-mod-fastcgi/+bug/…
Onkeltem

यहाँ एक ही: / किसी भी समाचार या समाधान? मैं सोच भी नहीं सकता कि इससे अधिक मामलों में कोई समस्या नहीं है ...
एड्रियन फोल्डर

जवाबों:


4

CGI स्क्रिप्ट को चलाते समय यह अपेक्षित व्यवहार है। Mod_headers डॉक्स के नवीनतम (2.4) संस्करण से :

नीचे सूचीबद्ध लोगों के समान परिस्थितियों में हमेशा असफल होने के डिफ़ॉल्ट मूल्य को हमेशा के लिए बदलना पड़ सकता है। यह भी ध्यान दें कि दोनों स्थितियों के साथ इस निर्देश को दोहराने से कुछ परिदृश्यों में समझ में आता है क्योंकि हमेशा मौजूदा हेडर के संबंध में असफलता का सुपरसेट नहीं है:

[...]
आप सीजीआई स्क्रिप्ट द्वारा उत्पन्न हेडर को संशोधित या हटा रहे हैं, उस स्थिति में सीजीआई स्क्रिप्ट हमेशा तालिका में हैं और डिफ़ॉल्ट तालिका में नहीं।

मूल मुद्दा (साथ, शायद, एक बेहतर स्पष्टीकरण) बग 49308 में है


अगर मैं इसे सही ढंग से पढ़ रहा हूं, Header always set MyHeader "I'm Set!"तो समस्या का समाधान करना चाहिए। मुझे लगता है कि मुझे एक जवाब मिला जहां किसी ने सुझाव दिया था कि यह उस मामले में ओपी के लिए काम नहीं करता था। लेकिन मुझे पूरा यकीन है कि उन्होंने कोशिश करने की बात कही है Header set always, जो हो सकता है कि यह सुझाव विफल रहा हो।
एंथनी

नहीं, मैं इसे वापस लेता हूं। मैंने उस प्रयास को ctrl-z'd किया और यह था Header always set। क्या मैं सिर्फ बोली को गलत बता रहा हूं?
एंथनी

आपके मूल प्रश्न में आपके पास वह निर्दिष्ट नहीं है; क्या आपको यकीन है कि इसका सेट यह Header always set MyHeader "I'm Set!"आपके उदाहरण के अनुसार कुछ होना चाहिए ।
एंड्रयू एम।

ठीक है, मैंने यह कोशिश की, हालांकि अपाचे के समर्थन के बिना, इसलिए मैंने एक कोशिश पर छोड़ दिया हो सकता है। और अब जब यह काम कर रहा है, तो मैं यह मानकर फंस गया हूं कि यह CGI से FastCGI का स्विच था, लेकिन मुझे चारों ओर संदेह है।
एंथनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.