Mam następujący problem na hoście korzystającym z Apache 2.2.22 + PHP 5.4.0
Muszę dostarczyć plik, /home/server1/htdocs/admin/contents.phpgdy użytkownik http://server1/admin/contentswysyła żądanie :, ale otrzymuję ten komunikat na serwerze dziennik błędów.
Negotiation: discovered file(s) matching request: /home/server1/htdocs/admin/contents (None could be negotiated)
Zauważ, że mam mod_negotiationwłączone i MultiViews wśród opcji dla powiązanego wirtualnego hosta:
<Directory "/home/server1/htdocs">
Options Indexes Includes FollowSymLinks MultiViews
Order allow,deny
Allow from all
AllowOverride All
</Directory>
Korzystam również mod_rewritez następujących .htaccesszasad:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^\./]*)$ index.php?t=$1 [L]
</IfModule>
Wydaje się to bardzo dziwne, ale działało poprawnie na tym samym pudełku z PHP 5.3.6. Właśnie próbuję uaktualnić do PHP 5.4.0, ale nie mogę rozwiązać tego problemu negocjacyjnego. Każdy pomysł na to, dlaczego Apache nie może się równać, contents.phpgdy pyta content(co powinno być tym, co powinna zrobić mod_negotiation)?
AKTUALIZACJA: Zauważyłem, że mod_negotiation działa poprawnie z plikami o rozszerzeniu innym niż .php: więc jeśli miałbym plik o nazwie /admin/contents.txt, mogę uzyskać do niego regularny dostęp za pomocą przeglądarki z / admin / content url. Problem dotyczy tylko plików php. Wszelkie wskazówki, co może sprawić, że negocjacje się nie powiodą?
+MultiViewswłączeniem i zniknął po wyłączeniu.