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.php
gdy użytkownik http://server1/admin/contents
wysył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_negotiation
włą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_rewrite
z następujących .htaccess
zasad:
<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.php
gdy 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ą?
+MultiViews
włączeniem i zniknął po wyłączeniu.