kostenloser Webspace werbefrei: lima-city


mod_rewrite / RegEx Problem

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    eu-b99

    eu-b99 hat kostenlosen Webspace.

    Hallo.
    Bitte entschuldigt den undeutlichen Titel, aber mir fiel kein besserer ein für mein Problem.

    Also:
    Ich lasse anhand einer ID eine Datei aus der Datenbank suchen und anzeigen.
    Das Script heißt etwa so: show.php?id=XXXX
    Um das Ganze nun etwas aufzuhübschen benutze ich mod_rewrite, dann wird daraus so etwas hier:
    RewriteRule show/(.*)$ /show.php?id=$1

    Das klappt auch wunderbar.

    Nun möchte ich aber, dass man die URL mit einem Dateinamen aufrufen kann.
    Also z.b. show/12345/datei.html etc.
    Der Dateiname spielt dabei allerdings keine Rolle und dient nur der Übersicht.

    Ich weiß dass man das irgendwie mit RegEx lösen kann, allerdings habe ich davon überhaupt keine Ahnung.

    Hat vielleicht jemand den passenden RegEx-Code für mich?

    Danke im Voraus. :wink:
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. Hallo,
    ich weiß nicht, ob ich deine Frage richtig verstanden habe, aber hier mal meine Idee.
    RewriteRule show/(.*)/datei.html$ /show.php?id=$1

    Das kannst du machen, wenn alle dateien bei dir datei.html heißen sollen. Dann musst du aber auch alle Links manuell ändern also
    <a href="show/54893/datei.html">Link</a>
    oder so ähnlich.

    Wenn die datei.html auch mal anders heißen soll, machst du es so:
    RewriteRule show/(.*)/(.*)$ /show.php?id=$1

    Dann kann der dateiname in der url angegeben werden oder nicht, also entwerder
    show/89340/
    oder
    show/89435/datei.html
    führen zum gleichen Ziel.
    Dann kommt es auf den Link an, den du auf eine HTML-Seite zur entsprechenden Seite setzt.

    Schöne Grüße
    mmc

    Beitrag zuletzt geändert: 2.2.2011 20:20:04 von mmc
  4. Autor dieses Themas

    eu-b99

    eu-b99 hat kostenlosen Webspace.


    Wenn die datei.html auch mal anders heißen soll, machst du es so:
    RewriteRule show/(.*)/(.*)$ /show.php?id=$1

    Dann kann der dateiname in der url angegeben werden oder nicht, also entwerder
    show/89340/
    oder
    show/89435/datei.html
    führen zum gleichen Ziel.

    So habe ich es schon probiert, aber dann wird das Ganze als ID genommen, also 12345/datei.html anstatt nur 12345.

    Ich denke man müsste dem Regex irgendwie sagen dass er beim Schrägstrich stoppen soll, aber ich habe leider keine Ahnung wie man das macht.
  5. Ungetestet, sollte aber hinhauen:
    RewriteRule show/([^/]+) /show.php?id=$1
    oder, wenn du den Dateinamen immer mit angibst, könnte man es auch so versuchen:
    RewriteRule show/([^/]+)/.*$ /show.php?id=$1

    Erläuterung: während ^ normal für den Anfang des Strings steht, ist es in den eckigen Klammern eine "Verneinung" für alle folgenden Zeichen.
  6. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!