2008-10-10 5 views
5

मुझे एक अजीब समस्या है ... मैं एक प्रलेखन जनरेटर का उपयोग कर रहा हूं जो दस्तावेज़/foo.php.html जैसे बहुत सारे आउटपुट उत्पन्न करता है। यह एक्सएचटीएमएल है, और इस प्रकार फ़ाइल की शुरुआत में <?xml...> टैग शामिल हैं। समस्या यह है कि, अपाचे ने किसी भी तरह से PHP दुभाषिया के माध्यम से इसे चलाने का फैसला किया है, भले ही ".php" फ़ाइल नाम के मध्य में दिखाई देता है, न कि अंत में। यह बदले में एक PHP त्रुटि ट्रिगर करता है, क्योंकि यह PHP कोड निष्पादित करने के लिए कमांड के रूप में "<?" देखता है, और इसके बाद इसे "xml..." द्वारा भ्रमित कर दिया जाता है।Apache PHP के रूप में .php.html फ़ाइलों को निष्पादित क्यों कर रहा है?

मैं अपाचे को केवल .php फ़ाइलों को निष्पादित करने के लिए कैसे कॉन्फ़िगर कर सकता हूं, और .php.html फ़ाइलों को नहीं? स्ट्रिंग "php.html" मेरी अपाचे कॉन्फ़िगरेशन फ़ाइलों में स्पष्ट रूप से कहीं भी दिखाई नहीं दे रही है। एक पंक्ति "AddHandler php5-script .php" है, लेकिन मुझे नहीं लगता कि इसमें ".php.html" फ़ाइलें शामिल होंगी।

+2

गूगल कर सकते हैं यह जहाँ तक मैं बता सकता है इस के लिए गूगल के लिए असंभव है , चूंकि Google उतार-चढ़ाव को अनदेखा करता है। ".php.html समस्या" आदि "php html समस्या" के लिए खोज के समान है जो मेरी समस्या से संबंधित हिट के ज़िलियन देता है। – davr

उत्तर

11

समस्या mod_mime में प्रतीत होती है। अपाचे mod_mime प्रलेखन पेज से

उद्धरण:

आप केवल फ़ाइल नाम के अंतिम डॉट अलग हिस्सा मेटा डेटा के किसी विशेष भाग को मैप किया जा करने के लिए पसंद करते हैं, तो ऐड का उपयोग नहीं करते * निर्देश। उदाहरण के लिए, यदि आप फ़ाइल foo.html.cgi एक CGI स्क्रिप्ट के रूप में संसाधित, लेकिन नहीं फ़ाइल bar.cgi.html करना चाहते हैं, तो AddHandler cgi-स्क्रिप्ट .cgi उपयोग करने के बजाय, का उपयोग

<FilesMatch \.cgi$>

SetHandler cgi-script

</FilesMatch>

इसके अलावा

, आप के लिए apache mod_mime "multiple extensions"

+1

यह तय है, धन्यवाद! शायद आदर्श होगा अगर मैं छोटे टैग को खत्म कर सकता हूं, लेकिन इस मामले में ऐसा नहीं कर सकता। – davr

+1

वाह मुझे नहीं पता था कि अपाचे ने यह किया - निश्चित रूप से यह एक बड़ी सुरक्षा समस्या हो सकती है (यदि आप इस बारे में अवगत नहीं थे और आपने फाइलनाम नाम देने की तरह कुछ किया था filfame.php.txt सोच रहा है कि उन्हें इंटरप होने से रोक देगा reted)। – thomasrutter

3

आप PHP के शॉर्टटैग को अक्षम कर सकते हैं - यह PHP और XML को मिश्रित करने का अनुशंसित तरीका है।

http://us.php.net/ini.core

short_open_tag = 0 
+0

उसने क्या कहा। हालांकि, अपना कोड जांचना सुनिश्चित करें। – analytik

+0

दुर्भाग्यवश मुझे लगता है कि जैसी चीजों का उपयोग करने वाले कुछ हद तक ऐसे स्थान हैं जिन्हें छोटे टैग की आवश्यकता होती है :( – davr

+0

हाँ .. लेकिन यदि आप ऐसा करते हैं, तो एक्सएमएल फाइलें काम करती हैं, लेकिन उन्हें बहुत धीमी गति से सेवा दी जानी चाहिए , क्योंकि उन्हें php दुभाषिया (जो सभी मानक php no-cache हेडर भी जोड़ देगा) को पार करना होगा। अच्छी योजना नहीं। – TRiG

-1

.html फ़ाइलें पीएचपी के रूप में पार्स किया जा सकता अनुमति दी जा रही के रूप में सूचीबद्ध कर रहे हैं? मैंने कुछ साझा होस्ट सेट किए हैं। एचटीएमएल फाइलों को वैध PHP एक्सटेंशन के रूप में उपयोग करने योग्य है जो आपकी .php.html फ़ाइलों को भी पकड़ सकता है।

+0

यही मैंने पहले सोचा था, लेकिन अगर मैं फ़ाइल 'test.html' बना देता हूं, PHP कोड को निष्पादित नहीं किया जाएगा। अगर मैं फ़ाइल 'test.php.html' बना देता हूं, तो PHP कोड इसे निष्पादित किया जाएगा। – davr

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