Hi!
Beispiel 1:
RewriteEngine On
RewriteRule ^registration index.php?user=registration
> Beispiel 2:
> ~~~apache
RewriteEngine On
> RewriteRule ^seite_([a-z]+).html$ index.php?user=$1
Apache-Konfigurationsanweisungen sind kein PHP-Code. Sie als solche zu kennzeichnen ist sinnfrei. Das Forum kennt auch [code lang=apache]
Wenn ich in Beispiel 1 meine URL aufrufe (localhost/registration)
ändert sich im Browser nach einer Sekunde die URL - in der URL
Leiste in "index.php?user=registration".
Die Ursache dafür ist nicht in der RewriteRule zu erkennen. Sie sollte eigentlich keinen Redirect auslösen. Das würde geschehen, wenn du eine absolute URL (mit http... beginnend) angeben würdest.
In Beispiel 2 jedoch ändert sich die URL in der URL Leiste nicht!
localhost/seite_registration.html bleibt erhaltet und nur im Hintergrund
wird localhost/index.php?user=registration geladen,..
Da findet nur ein interner Redirect statt.
Woran liegt das und wie bekomme ich das bei Beispiel 1 auch so hin?
Zunächst gilt es, die Ursache herauszufinden. Wenn du mit Tools wie der Livehttpheaders-Extension für den Firefox nachschaust, was sich zwischen Browser und Server abspielt, könnte man vielleicht etwas Sachdienliches beobachten. Vielleicht aber auch nicht. Ein Verdächtiger könnte auch das aufgerufene Script sein. Hast du da mal allen Code deaktiviert und nur einen "Hier bin ich"-Text drin gelassen? Und wenn es hoch kommt, müsstest du mal die ablaufenden Vorgänge im RewriteLog nachschauen, was aber administrativen Zugang zum Apachen voraussetzt, denn das kann man nicht in der .htaccess einschalten.
Lo!