Wer mit dem Webserver Apache in Kombination mit der Skriptsprache PHP Webanwendungen oder Websites entwickelt, erlebt vielleicht mal folgendes Phänomen: Die Seite bleibt weiß, es kommt keine Fehlermeldung. Im Apache-Error-Log steht:
[Tue Nov 11 17:28:13 2014] [error] [client 37.24.XX.XXX] PHP Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0, referer: http://www.example.com/ [Tue Nov 11 17:28:13 2014] [error] [client 37.24.XX.XXX] PHP Fatal error: Unknown: Failed opening required 'redirect:/index.php' (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0, referer: http://www.example.com/
Die Stelle, an der der Fehler auftritt (Unknown line 0
statt sowas wie share.php on line 1345
) hilft nicht gerade weiter. Ebenso komisch ist die Datei, die angeblich eingebunden werden soll. Findet man im eigenen Code nicht wieder.
Dieses Phänomen tritt auf, wenn man (im einfachsten Fall) z.B. in seiner index.php
den Aufruf index.php?c=main
so auswertet, dass eine main.php
im selben Verzeichnis required1) bzw. included2) wird. Wenn dann noch per mod_rewrite die URL /main
auf /index.php?c=main
rewritten wird und gleichzeig MultiViews bei Apache aktiviert ist, kommt es zu diesem Fehler. Denn der Apache will die Datei main.php
automatisch für den Pfad /main
aufrufen (automatische „Dateiendung“ = Aufgabe von MultiViews) und irgendwie greift diese Regel in undefinierter bis gleichzeitiger Reihenfolge mit dem Rewrite und schon hat man den Salat.
Also einfach in die .htaccess
bzw. vHost-Server-Konfiguration
Options -MultiViews
reinschreiben.