Ankündigung

Einklappen
Keine Ankündigung bisher.

Mod_Rewrite - Variable wird nicht richtig übernommen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Trexter
    hat ein Thema erstellt Mod_Rewrite - Variable wird nicht richtig übernommen.

    Mod_Rewrite - Variable wird nicht richtig übernommen

    Hallo Leute,

    ich hänge jetzt schon länger an meiner .htaccess
    Das Problem ist, ich komme nicht ganz mit 2 gleichzeitigen Rewrite's klar, denn ein Rewrite sorgt dafür das zb. www.domain.de/Startseite zu www.domain.de/Startseite.php wird und die andere macht aus www.domain.de/Profil/Username www.domain.de/Profil.php?user=username.

    Irgendetwas kreuzt sich da, denn funktionieren tut es nur halb, wenn ich den Profilpfad so angebe, wird von der Rewriterule der Username nicht übernommen...

    Sehr umständlich, aber ich hoffe ihr könnt es verstehen

    Der Code:
    Code:
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$  /$1.php [QSA]
    RewriteRule ^/Profil/(.*)$  /Profil?username=$2&page=Ubersicht [QSA,L]
    RewriteRule ^/Profil/(.*)/Ubersicht$  /Profil?username=$2&page=Ubersicht [QSA,L]
    RewriteRule ^/Profil/(.*)/Bearbeiten$  /Profil?username=$2&page=Bearbeiten [QSA,L]
    RewriteRule ^/Profil/(.*)/Einstellungen$  /Profil?username=$2&page=Einstellungen [QSA,L]
    1000 dank vorher schon einmal!
    Tristan

  • erc
    antwortet
    Wieso soll aus "http://www.example.de/Profil/foo/bar/" -> "http://www.example.de/Profil.php/foo/bar/" werden? Führ doch erst die speziellen Regeln aus und dann die allgemeinen.

    PHP-Code:
    RewriteRule ^/Profil/(.*)/(.*)$  /Profil.php?username=$2&page=$[QSA,L]
    RewriteRule ^(.*)$  /$1.php [QSA
    Mit der L Flag werden die nachfolgenden Regeln nicht ausgeführt, wenn die Regel trifft.

    Einen Kommentar schreiben:


  • Trexter
    antwortet
    Danke erc,

    das hat mir schon einen Schritt geholfen, denn
    das Ergebnis der einer Regel ist die Basis der nächsten Regel
    war mir so nicht richtig klar. Jetzt hab ich, soweit ich das sehe, noch zwei Probleme,
    Du hängst an alles ein .php und prüfst danach ob die Url auf /Ubersicht endet!?
    Ja das ist das Problem, ich bekomme es nicht hin, das er dieses .php nur an das ran hängt, was zwischen den ersten beiden Klammern hinter der Domain steht, wie funktioniert das?

    Und das zweite was ich nicht gelöst bekomme, wenn man www.domain.de/Profile/Trexter/Ubersicht eingibt, funktioniert es, aber wenn man www.domain.de/Profile/Trexter eingibt, mag htaccess es nicht... wie bekommt man das in den Griff?

    Mein bisheriger (falscher) Code..
    Code:
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$  /$1.php [QSA]
    RewriteRule ^/Profil.php/(.*)/(.*)$  /Profil.php?username=$2&page=$3 [QSA,L]
    @tkausl
    Ich habe nicht gesagt das ich ein Profi darin bin und das kann, deswegen bin ich auch hier, danke für deinen Beitrag.

    MfG und Danke
    Tristan

    Einen Kommentar schreiben:


  • erc
    antwortet
    Da sind noch zwei andere Dinge falsch. Die Regeln werden der Reihe nach abgearbeitet, das Ergebnis der einer Regel ist die Basis der nächsten Regel. Du hängst an alles ein .php und prüfst danach ob die Url auf /Ubersicht endet!? Du prüfst ob die Url mit /Profile/ beginnt und brichst ggf. ab, danach willst du aber weitere Urls mit /Profile/ beginnend umschreiben!?

    Einen Kommentar schreiben:


  • tkausl
    antwortet
    Ist dir bewusst was die $2 tut? Scheint mir nicht so.

    Einen Kommentar schreiben:


  • Trexter
    antwortet
    War ja auch nur das Prinzip und nicht die richtige URL.

    www.domain.de/Profil/Username -> www.domain.de/Profil.php?username=Username&page=Ubersicht

    So sollte es sein, zumindest die zweite Rule, aber der Username wird ja nicht übernommen, warum nicht?

    MfG
    Tristan

    Einen Kommentar schreiben:


  • nikosch
    antwortet
    Nö. Weder macht sie ?user= noch username

    ?username=

    Einen Kommentar schreiben:

Lädt...
X