मैं 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
सक्षम होने के साथ यह समस्या थी , और इसे अक्षम करने पर यह गायब हो गया।