phpbar.de logo

Mailinglisten-Archive

[php] htaccess, mod_rewrite, server-crash oder 404

[php] htaccess, mod_rewrite, server-crash oder 404

Ulf Seltmann seltmann at digitalzone.de
Die Mai 6 14:57:29 CEST 2008


Kirsten Bohlig schrieb:
> Hallo,
Hi

> wenn ich mit der .htaccess versuche, header-Funktionen einzubinden, 
> cache zu verhindern, gzip oder irgendwas, was z.B. auf 
> http://www.askapache.com/htaccess/ und ähnlichen Seiten beschrieben ist, 
> kommt es in den meisten Fällen zu einem Servercrash (Internal Error 500)
Das deutet daraufhin, dass die Optionen, die du in der .htaccess setzt 
entweder dort nicht erlaubt sind oder vom Apache nicht erkannt werden 
(weil die entsprechenden Module fehlen?). Welche Optionen in der 
.htaccess erlaubt sind, steht in der Doku zu jeder Option (Context: 
.htaccess).

> oder wenn ich versuche, URLs umzuschreiben, funktioniert es einfach 
> nicht (die Umleitung auf eine eigene 404-Seite funktioniert allerdings).
> 
> In der .htaccess steht:
> Options +FollowSymlinks
> RewriteEngine On
> RewriteRule index.html$ index.php
> 
> Das müsste doch bedeuten:
> In der Adresszeile des Browsers steht index.html - in Wirklichkeit wird 
> der Besucher aber umgeleitet auf index.php - ich bekomme aber einen 
> Error 404. Warum? (Die Datei index.php existiert, apache war neu 
> gestartet...)
1. ein Rewrite ist was anderes als ein Redirect
2. beim Rewriting gelten für die .htaccess andere Regeln, als in einer 
VHost-Directive. Schau dir mal die Beispiele auf [1] an. Ganz unten gibt 
es zwei Abschnitte "Inside per-server configuration" und "Inside 
per-directory configuration", wovon letztere für dich wohl interessanter 
ist.

> Das Ganze läuft lokal über xampp, Apache/2.2.3 (Win32), php 5.2 (nicht 
> ;-) mod_rewrite ist in der php-info unter den "loaded modules" 
> aufgeführt, in der http.conf ist LoadModule rewrite_module 
> modules/mod_rewrite.so auskommentiert und wenn ich AddModule 
> mod_rewrite.c hinzufüge, dann lässt sich der apache gar nicht mehr 
> starten...(ein Tipp aus 
> http://www.aboutwebdesign.de/awd/content/1042302787.shtml, allerdings 
> auch schon etwas älter)
Wenn laut phpinfo() mod_rewrite aktiviert ist und laut der obenstehenden 
.htaccess-Einträge kein Internal Server Error(500) kommt, funktioniert 
das Rewrite-Modul.

> Wo muss ich suchen? Was muss ich ändern?
Du solltest dich mal intensiv mit Apache-Rewrite beschäftigen. Das ist 
sehr mächtig und die Chance, dass dort ein paar der genannten Fehler 
liegen ist sehr groß.
Weiterhin empfehle ich die Logfiles zu analysieren. Die geben recht gut 
Aufschluß über gemachte Fehler, vor allem wenn du einen Fehler 500 
kriegst. Für das Rewriting lässt sich auch ein Logfile anlegen.

ciao

Ulf

[1] http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

php::bar PHP Wiki   -   Listenarchive