mod_rewrite: 1. Transformations-Regel geht, 2te nicht
tox
- webserver
0 Christoph Schnauß0 tox
Guten Morgen,
entweder sitzt ich auf dem Schlauch oder ich bin schon völlig wahnsinnig:
Die erste Regel funktioniert einwandfrei (Skript weiter unten). Der Server erkennt z.B. den Aufruf www.domain.com/en und liefert www.domain.com&lan_cur=en aus. Bei der Zweiten macht er einen "Error 404".
Bei der zweiten soll aus www.domain.com/en/contact www.domain.com&lan_cur=en&pag_id=contact werden.
Im Archiv hab ich von der Existenz von RewriteLog erfahren. Nun habe ich gleich zwei Probleme, das funzzt auch nicht. Ich kann also nicht nachschauen was schief läuft.
Warum wird hier nicht der zweite Teil ergänzt?
RewriteEngine On
RewriteRule ^th$ /?lan_cur=th
RewriteRule ^en$ /?lan_cur=en
RewriteRule ^de$ /?lan_cur=de
RewriteRule ^/([a-zA-Z0-9_])$ &pag_id=$1 [QSA]
Das "[QSA]" hatte ich zuerst nicht. Nutzt aber nix. Hab das so verstanden das dem Mod mitgeteilt werden muss, dass das noch hinten drangehängt werden muss.
Das "/" RewriteRule ^/([a-zA-Z0-9_])$ &pag_id=$1 [QSA] hatte ich auch schon draussen. Hat nix genutzt.
Wo liegt der Fehler?
Die Direktive zum Loggen in der httpd.conf ist:
RewriteLog "rewrite.log"
Interessanterweisse steht unter RewriteLog auf apache.org, dass diese Direktive nur in Server Config oder Virtual Host funktioniert. Unter RewriteLog auf SELFHTML steht das es entweder in Virtual Host oder .htaccess gehört.
Wenn ich es in der .htaccess habe gibt der Server bei einem Seitenaufruf einen "Error 500" aus. In der httpd.conf gibts keinen Fehler, aber auch keine Funktion. Meine rewrite.log in der Root bleibt leer. Und es entsteht auch nirgends auf dem Arbeitsplatz eine Neue mit Inhalt.
Und natürlich habe ich in der Root bereits eine Datei mit dem Namen rewrite.log.
Und natürlich habe ich in der httpd-vhosts.conf (Virtual Host) ein AllowOverride All stehen.
Und natürlich nehme ich gerne die fertige Lösung. ;-)
Danke und Gruss
hallo,
RewriteRule ^/([a-zA-Z0-9_])$ &pag_id=$1 [QSA]
Versuchs mal so:
RewriteRule ^([a-zA-Z0-9_])$ /(*)&pag_id=$1 [QSA]
Grüße aus Berlin
Christoph S.
Hallo Christoph,
RewriteRule ^([a-zA-Z0-9_])$ /(*)&pag_id=$1 [QSA]
geht nicht.
Danke und Gruss