Core: .htaccess RewriteRule

Beispiel 1:

  
RewriteEngine On  
RewriteRule ^registration index.php?user=registration  

Beispiel 2:

  
RewriteEngine On  
RewriteRule ^seite_([a-z]+).html$ index.php?user=$1  

Hi Leute,
vorweg ich habe kaum Ahnung von htaccess und bin diesbezüglich ein
blutiger Anfänger. Trotzdem hoffe ich das ihr mir weiter helfen könnt.

Meine Frage wäre:
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".

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,..

Woran liegt das und wie bekomme ich das bei Beispiel 1 auch so hin?
Ich wäre euch sehr für eine Hilfestellung dankbar!

lG
Core

  1. hi,

    Woran liegt das und wie bekomme ich das bei Beispiel 1 auch so hin?
    Ich wäre euch sehr für eine Hilfestellung dankbar!

    Im ersten Fall findet eine Umleitung (Redirect, Location-Header) statt, im Zweiten nicht.

    Hotti

  2. 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!