Ankündigung

Einklappen
Keine Ankündigung bisher.

ModRewrite Hilfe: Datei mit und ohne GET Variable richtig umschreiben.

Einklappen

Neue Werbung 2019

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

  • ModRewrite Hilfe: Datei mit und ohne GET Variable richtig umschreiben.

    Hallo,

    ich bin neu im ModRewrite Universum und bräuchte hier an einer Stelle Hilfe.

    Folgendes:
    Ich habe z.B. die Datei "meine-datei.php" im Root Ordner liegen.
    Nun möchte ich folgende vier Regeln entsprechend umsetzen:

    /edit:
    a) User gibt im Browser "meine-domain.de/meine-datei" ein
    - User landet auf: meine-datei.php
    - User sieht: meine-domain.de/meine-datei

    b) User gibt im Browser "meine-domain.de/meine-datei/lorem-ipsum" ein
    - User landet auf: meine-datei.php?variable=lorem-ipsum
    - User sieht: meine-domain.de/meine-datei/lorem-ipsum



    Ich würde mich sehr freuen wenn mir hier jemand helfen kann das richtig umzusetzen. Vielen lieben Dank im Vorraus!

  • #2
    Wozu soll das gut sein? Warum sollte ein User eine falsche URL eingeben, statt gleich der richtigen?

    Kommentar


    • #3
      Hi. Da hast du vemutlich recht. Ich bin mir hier auch nicht sicher wie die Best Pratice ist.

      Vermutlich brauche ich einfach folgende Regelung oder?

      a) User gibt im Browser "meine-domain.de/meine-datei" ein
      - User landet auf: meine-datei.php
      - User sieht: meine-domain.de/meine-datei

      b) User gibt im Browser "meine-domain.de/meine-datei/lorem-ipsum" ein
      - User landet auf: meine-datei.php?variable=lorem-ipsum
      - User sieht: meine-domain.de/meine-datei/lorem-ipsum

      Wie setze ich das um? Ich schaff es nicht die beiden Fälle mit und ohne Variable richtig zusammenzubekommen :/

      Aktuell hätte ich dann:
      Code:
      # Enable Rewriting
      RewriteEngine on
      
      # internally rewrite
      RewriteRule ^meine-datei/([A-Za-z0-9-]+)$ /meine-datei.php?id=$1 [L]
      Damit funktioniert aber nur Regel b), Regel a) nicht.

      Kommentar


      • #4
        Ok. Ist die Lösung etwas einfach folgende?
        Code:
        RewriteRule ^meine-datei$ /meine-datei.php [L]
        RewriteRule ^meine-datei/([A-Za-z0-9-]+)$ /meine-datei.php?id=$1 [L]
        Es funktioniert so jedenfalls. Ist das so auch Best Pratice? Oder kann/sollte man das mit einer einzigen RewriteRule zusammenfassen?

        Kommentar


        • #5
          Best Practice ist alles auf eine index.php zu leiten und den Rest in PHP zu machen:

          Code:
          RewriteEngine On
          RewriteCond %{REQUEST_FILENAME} -s [OR]
          RewriteCond %{REQUEST_FILENAME} -l [OR]
          RewriteCond %{REQUEST_FILENAME} -d
          RewriteRule ^.*$ - [NC,L]
          RewriteRule ^.*$ index.php [NC,L]

          Kommentar

          Lädt...
          X