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

  • 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


  • #2
    Nö. Weder macht sie ?user= noch username

    ?username=
    --

    „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
    Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


    --

    Kommentar


    • #3
      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

      Kommentar


      • #4
        Ist dir bewusst was die $2 tut? Scheint mir nicht so.
        Zitat von nikosch
        Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

        Kommentar


        • #5
          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!?

          Kommentar


          • #6
            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

            Kommentar


            • #7
              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.

              Kommentar

              Lädt...
              X