2016-07-01 15 views
5

PHP द्वारा उत्पन्न प्रतिक्रिया के लिए शीर्षलेख (.htaccess फ़ाइल में परिभाषित) जोड़ना संभव है?.htaccess-file में PHP प्रतिक्रिया के शीर्षलेखों का उपयोग करें?

मुझे लगता है कि प्रत्येक प्रतिक्रिया मेरी अपाचे वेबसर्वर द्वारा वितरित करने के लिए एक हैडर TestHeader जोड़ना चाहिए मेरी में निम्नलिखित .htaccess फ़ाइल है:

#<IfModule mod_headers.c> 
# Header unset X-Powered-By 
    Header add TestHeader "It works." 
#</IfModule> 

मैं भी उस फ़ोल्डर में तीन अतिरिक्त फ़ाइलें:

  1. html.html

    <html>content</html> 
    
  2. 1.php

    <?php 
    echo "<html>content php</html>"; 
    
  3. 2.php

    <?php 
    header("TestHeader: Sent from PHP."); 
    echo "<html>content php</html>"; 
    
    • html.html रिटर्न का निवेदन हैडर TestHeader: "It works."
    • का निवेदन 1.php करता नहीं वापसी हैडर TestHeader
    • का निवेदन 2.php रिटर्न हैडर TestHeader: "Sent from PHP."

यह किसी भी तरह पीएचपी उत्पादन से प्रतिक्रिया हेडर .htaccess निर्देशों का उपयोग कर हेरफेर करने के लिए संभव है?

संपादित करें: PHP सर्वर पर FastCGI के रूप में चलता है। अनुरोध URL एक्सटेंशन ".php", तो SetEnvIf एक चर "phpfile" सेट हो जाएगा के साथ समाप्त होता है

SetEnvIf Request_URI "\.php$" phpfile 
Header set TestHeader "Sent from PHP" env=phpfile 

:

+0

मैं यह जानता क्षेत्र से बाहर है, लेकिन एक PHP एकमात्र समाधान आपकी समस्या का समाधान होगा? PHP में एक बार हेडर स्थापित करने के लिए एक तरह से है, लेकिन है कि सभी PHP स्क्रिप्ट – BeetleJuice

+0

यह * * काम करना चाहिए करने के लिए लागू होता है। हैं, उदाहरण के लिए, यदि में '1.php' तुम क्या' print_r (apache_response_headers()) 'आप के साथ एक सरणी मिलना चाहिए' [TestHeader] => यह उस में works.' (आप 'कॉल करने के लिए फ्लश आवश्यकता हो सकती है() 'पहले)। – CD001

+0

@ CD001: तो आप कह रहे हैं, कि PHP किसी भी तरह हेडर को हटा? – Edward

उत्तर

2

यह आपके अपाचे संस्करण और तथ्य यह है कि PHP फास्टसीजीआई के रूप में चलता है।

अपाचे 2.2 में।एक्स वहाँ एक बग था: https://bz.apache.org/bugzilla/show_bug.cgi?id=49308

मैंने पाया अन्य पोस्ट always शर्त का उपयोग करने समस्या को ठीक करने का प्रस्ताव की एक जोड़ी:

Header always add TestHeader "It works." 

यह भी देखें:

+0

में "सेट" का उपयोग करके प्रतिस्थापित किया जा सकता है एक बार जब आपको पता चले कि आपको फास्टसीजीआई और हेडर की खोज करनी है, तो आपको कुछ समस्याएं मिल सकती हैं :-D; मेरे सर्वर पर संस्करण वास्तव में '2.2.x' है। – Edward

3

आप SetEnvIf उपयोग कर सकते हैं और फिर उसके अनुसार हेडर जोड़ें। यदि परिवर्तनीय "phpfile" मौजूद है तो केवल TestHeader: Sent from PHP प्रतिक्रिया शीर्षलेख के रूप में भेजा जाएगा। आप इस तर्क का उपयोग जितना चाहें उतने एक्सटेंशन या यूआरएल पैटर्न के लिए कर सकते हैं।

संपादित करें: यदि हेडर पहले से मौजूद है यानी यह PHP से भेजा गया है, तो Header Set अपाचे का उपयोग करके इसे नए मान से बदल दिया जाएगा।

+0

PHP द्वारा भेजे गए प्रतिक्रिया हेडर को .htaccess फ़ाइल – nidhi

संबंधित मुद्दे