PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Rewrite in htaccess funktioniert nicht



AndreasMeier
13.11.05, 14:51
Hallo zusammen,

hab ein Webverzeichnis, in dem eine htaccess-Datei liegt.

Jetzt wollte ich eine Rewrite-Regel dort einbauen, bekomme aber dann nur einen 500 - Serverfehler zurück.

Datei enthält folgendes:


AuthUserFile /srv/www/test/.htpasswd
AuthType Basic
AuthName "am"
require valid-user

RewriteEngine on
RewriteRule ^(.*)\.thumb_big thumb_big.php?%{REQUEST_FILENAME}
RewriteRule ^(.*)\.thumb_medium thumb_medium.php?%{REQUEST_FILENAME}
RewriteRule ^(.*)\.thumb thumb.php?%{REQUEST_FILENAME}


Hintergrund ist folgender:
Ich hab eine PHP-Seite laufen, in der ich einen On-the-fly-thumbsnailer eingebaut hab.
Die Seite fragt jetzt JPG-Bilder nicht mehr mit der Endung *.jpg an, sondern mit der Endung *.thumb.

Durch die Rewrite-Regel soll eine weitere Datei (z.B. thumb_big.php) angesprochen werden und das Thumbnail zurückliefern.

Meine Frage ist nun, ob ich in der htaccess das so machen kann, ob ich einen Synthaxfehler drin hab, oder warum das so nicht geht ?

Herzlichen Dank im voraus,
Gruß
Andreas

Tomek
13.11.05, 15:18
Schon mal ins Apache-Errorlog geguckt? Passt die AllowOverride-Einstellung für dieses Verzeichnis? Ist das rewrite-Modul geladen?

AndreasMeier
13.11.05, 15:34
Im Log-File sagt er mir :
Invalid command 'RewriteEngine', perhaps mis-spelled or defined by a module not included in the server configuration.

Das sollte mir wahrscheinlich sagen, was Du auch gefragt hast - sind die Module richtig geladen.
Wie kann ich das denn überprüfen ?
Ich benutze ein Suse9.1/Apache2-Konstrukt.

Ebenso weiß ich nicht, ob meine AllowOverride-Einstellung für dieses Verzeichnis passen.

Gruß
Andreas

Tomek
13.11.05, 15:38
Im Log-File sagt er mir :
Invalid command 'RewriteEngine', perhaps mis-spelled or defined by a module not included in the server configuration.

Das sollte mir wahrscheinlich sagen, was Du auch gefragt hast - sind die Module richtig geladen.
Das sagt dir, dass er das Kommando nicht kennt und somit das Modul rewrite nicht geladen ist.

Welche Distribution und Version hast du denn?


Ebenso weiß ich nicht, ob meine AllowOverride-Einstellung für dieses Verzeichnis passen.
Dann solltest du ins Apache-Handbuch gucken:
http://httpd.apache.org/docs/2.0/mod/core.html#allowoverride

AndreasMeier
13.11.05, 16:57
Ich verwende Suse9.1 und Apache2.

Muß ich da speziell was nachinstallieren ?
Im Yast hab ich nix gefunden, wo irgendwo rewrite in der Beschreibung mit stehen würde.

In der Config für die virtuellen Hosts hab ich jeweils folgendes drin:
<Directory "/srv/www/test">
allow from all
Options +Indexes
</Directory>

Die Anleitung vom Apache ist leider nicht grad so supereinfach zu verstehen und ein Beispiel für Rewrite ist auch nicht enthalten.

Gruß
Andreas

AceTheFace
13.11.05, 18:06
Also zuerstmal solltest du sicherstellen, dass mod_rewrite auch für deinen apache2 installiert ist (YaST). Dann musst du das Modul evtl. noch aktivieren ("a2enmod rewrite").

Gruß,
Ace

AndreasMeier
13.11.05, 19:02
Also, soweit ich hier (http://rpmfind.net//linux/RPM/suse/9.1/i386/suse/i586/apache2-2.0.49-23.i586.html) gelernt habe, ist mod_rewrite.so schon beim Apache2 dabei.
Liegt bei mir auf /usr/lib/apache2-prefork/mod_rewrite.so.
Ebenso in /usr/lib/apache2/mod_rewrite.so.

Jetzt ist die Frage, wo ich das Modul aktivieren kann.
Im Webmin finde ich es nicht.
Geht doch bestimmt in irgendwelchen Config-Dateien?

Danke und Gruß
Andreas

Edit: ich hab in die loadmodules.conf folgendes mit aufgenommen:
LoadModule mod_rewrite /usr/lib/apache2-prefork/mod_rewrite.so

Bringt aber nix, das Modul taucht in der Webmin-Liste unter "Installierte Module neu konfigurieren" nicht auf.

Tomek
13.11.05, 19:05
Es gibt doch das Apache-Handbuch, warum liest du das nicht?!

Ich habe kein SUSE Linux, aber Google weiss auch z.B. etwas:
http://serversupportforum.de/forum/webserver/1308-mod_rewrite-aktivieren.html

AndreasMeier
13.11.05, 19:32
Mensch, Tomek, klasse Link.
Der hat den Knoten gelöst !!
Hab alles eingetragen wie es dort beschrieben war und nun geht alles.

Und sei mir bitte nicht böse, dass ich das Apache-Handbuch nicht gelesen habe. Wie ich oben geschrieben habe, find ich es furchtbar umständlich geschrieben. Ich hab es aus dem Handbuch einfach nicht richtig verstanden.

Gruß
Andreas