मैं Apache 2.2.22 + PHP 5.4.0 का उपयोग कर एक होस्ट पर निम्न समस्या कर रहा हूँ
/home/server1/htdocs/admin/contents.phpउपयोगकर्ता द्वारा अनुरोध http://server1/admin/contentsकरने पर मुझे फ़ाइल प्रदान करने की आवश्यकता होती है : लेकिन मुझे यह संदेश सर्वर error_log पर प्राप्त होता है।
Negotiation: discovered file(s) matching request: /home/server1/htdocs/admin/contents (None could be negotiated)
ध्यान दें कि मैंने mod_negotiationसंबंधित वर्चुअलहोस्ट के विकल्पों के बीच सक्षम और मल्टीव्यूज:
<Directory "/home/server1/htdocs">
Options Indexes Includes FollowSymLinks MultiViews
Order allow,deny
Allow from all
AllowOverride All
</Directory>
मैं mod_rewriteनिम्नलिखित .htaccessनियमों के साथ भी उपयोग करता हूं :
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\./]*)$ index.php?t=$1 [L]
</IfModule>
यह बहुत अजीब लगता है, लेकिन PHP 5.3.6 के साथ एक ही बॉक्स पर यह सही ढंग से काम करता था। मैं सिर्फ PHP 5.4.0 के लिए एक उन्नयन की कोशिश कर रहा हूँ, लेकिन मैं इस बातचीत के मुद्दे को हल नहीं कर सकता। अपाचे का मिलान contents.phpकरते समय कोई भी विचार क्यों नहीं हो contentसकता है (जो होना चाहिए mod_negotiation क्या करना चाहिए)?
अद्यतन: मैंने देखा कि mod_negotiation .php से भिन्न एक्सटेंशन वाली फ़ाइलों के साथ सही व्यवहार करता है: इसलिए यदि मेरे पास /admin/contents.txt नाम की कोई फ़ाइल है, तो मैं इसे ब्राउज़र के साथ / व्यवस्थापक / सामग्री url के साथ नियंत्रित कर सकता हूं। तो समस्या केवल php फ़ाइलों के लिए है। क्या बातचीत विफल हो सकती है इस पर कोई सुराग?
+MultiViewsसक्षम होने के साथ यह समस्या थी , और इसे अक्षम करने पर यह गायब हो गया।