Martin: mod rewrite

Hi,
vielleicht kann mir hier jemand auf die Sprünge helfen.

hier mal die .htaccess

RewriteEngine on
Options +FollowSymlinks
RewriteBase /
RewriteRule mainseite.html index.php?show=mainseite
RewriteRule guestbook.html index.php?show=guestbook
RewriteRule ^guestbook-([0-9]+).html$ index.php?show=guestbook&lim=$1

die ersten beiden rules funktionieren schon, allerdings wenn ich im Gästebuch eins weiter blättere wandelt er es nicht um :(

Wo wir auch zur nächsten Frage kommen, wie muß der link im Quelltext dann eigentlich lauten?

Im moment heisst der wie folgt:
index.php?show=guestbook&lim=$backlim

Aber ich glaub so kanns dann gar nicht klappen oder?
Hab mich erst seit gestern damit befasst und steht etwas auf der Leitung :(

  1. Hi Martin,

    RewriteRule ^guestbook-([0-9]+).html$ index.php?show=guestbook&lim=$1
    Wo wir auch zur nächsten Frage kommen, wie muß der link im Quelltext dann eigentlich lauten?

    Schau doch mal hin, du ersetzt guestbook-X.html durch index.php?show=guestbook&lim=X, wobei X für beliebig viele Zahlen stehen kann.

    Also müsste der Link z.B. auf guestbook-1.html verweisen.

    Im moment heisst der wie folgt:
    index.php?show=guestbook&lim=$backlim

    Aber ich glaub so kanns dann gar nicht klappen oder?
    Hab mich erst seit gestern damit befasst und steht etwas auf der Leitung :(

    Ich glaube, du hast dir die .htaccess nicht selber gemacht, oder? ;-)
    du kannst natürlich auch einfach direkt auf index.php?show=guestbook&lim=X verlinken, wobei X für die aufzurufende Seite steht. Dann brauchst du das ganze Rewrite gar nicht *g*

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
    Zufällige Hinweise:
    ------------------------
    Meine Homepage: http://www.riehle-web.com
    Tutorial: http://tutorial.riehle-web.com
    1. Hi Dennis,

      Also müsste der Link z.B. auf guestbook-1.html verweisen.

      Darauf bin ich mittlerweile auch gestossen ;)

      Ich glaube, du hast dir die .htaccess nicht selber gemacht, oder? ;-)

      Ja, das war ein codeschnipsel den ich ein bischen angepasst hatte. Hab aber einen Denkfehler gehabt.

      du kannst natürlich auch einfach direkt auf index.php?show=guestbook&lim=X verlinken, wobei X für die aufzurufende Seite steht. Dann brauchst du das ganze Rewrite gar nicht *g*

      hmm so hatte ich es ja, allerdings wollt ich eben mit mod rewrite die Seite ein bischen suchmaschinenfreundlicher gestalten.

      Doch leider ists gar nicht so leicht wie ich mir das so vorgestellt habe. Hab noch ein Problem:

      hier der alte link:
      <a href='index.php?show=gallerieg&bildID=$bildID&limit=$limit'>

      hier der neue link:
      <a href='bild-$limit-$bildID.html'>

      die .htaccess sieht so aus:
      RewriteRule gallerie.html index.php?show=gallerie
      RewriteRule ^gallerie([0-9]+).html$ index.php?show=gallerie&lim=$1
      RewriteRule ^bild-([0-9]+)-([0-9]+).html$ index.php?show=gallerieg&lim=$1&bildID=$2

      Allerings erhalte ich immer nur einen Wert also z.b. $bildID wenn ich mit echo lim ausgebe erhalte ich gar nichts. Nur wieso?

      Gruß Martin

      1. Hi Martin,

        hmm so hatte ich es ja, allerdings wollt ich eben mit mod rewrite die Seite ein bischen suchmaschinenfreundlicher gestalten.

        Hm, abgesehen davon, dass (zumindest Google) mit den Get Anhängseln zurecht kommt, bin ich mir nicht sicher, ob das was bringt, da AFAIK bei einem Rewrite ja ein Header mitgeschickt wird und man dann zur richtigen Seite kommt.

        Doch leider ists gar nicht so leicht wie ich mir das so vorgestellt habe. Hab noch ein Problem:

        hier der alte link:
        <a href='index.php?show=gallerieg&bildID=$bildID&limit=$limit'>

        Ähm, das ist _so_ kein Link, du solltest zur Verständlichkeit Sagen "Link in PHP":
        echo "<a href='index.php?show=gallerieg&bildID=$bildID&limit=$limit'>";

        Übrigends ist das (wieder AFAIK) nicht ganz ok, die Attribute in ' einzuschließen, ferner musst du das & maskieren so dass sich letztlich ergibt:
        echo "<a href="index.php?show=gallerieg&amp;bildID=$bildID&amp;limit=$limit">";

        oder:
        echo '<a href="index.php?show=gallerieg&amp;bildID=' . $bildID . '&amp;limit=' . $limit .'">';

        hier der neue link:
        <a href='bild-$limit-$bildID.html'>

        Hier gilt gleiches wie oben.

        die .htaccess sieht so aus:
        RewriteRule gallerie.html index.php?show=gallerie
        RewriteRule ^gallerie([0-9]+).html$ index.php?show=gallerie&lim=$1
        RewriteRule ^bild-([0-9]+)-([0-9]+).html$ index.php?show=gallerieg&lim=$1&bildID=$2

        Allerings erhalte ich immer nur einen Wert also z.b. $bildID wenn ich mit echo lim ausgebe erhalte ich gar nichts. Nur wieso?

        Hm, soweit ich das jetzt sehe, sieht das eigentlich ganz ok aus. Wäre gut, wenn wir uns das irgendwo mal als Live Beispiel anschauen könnten.

        Was passiert denn genau, wenn du auf folgende Seiten gehst:

        • gallerie.html
        • gallerie-09.html
        • bild-01-04.html

        MfG, Dennis.

        --
        Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
        Zufällige Hinweise:
        ------------------------
        Den Selfcode kann man sich �/]