mod_rewrite - Übergabe Probleme

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

  • mod_rewrite - Übergabe Probleme

    Zunächst möchte ich erwähnen, dass ich bereits auf der Seite modrewrite.de
    gewesen bin, aber leider nicht so richtig fündig wurde, was
    meine spezielle Frage betrifft:

    Ich möchte mittels mod_rewrite durch die seite_$1.html
    die Seite seite.php?id=$1, also steht folgendes in meiner
    .htaccess Datei:

    RewriteEngine On
    RewriteRule ^seite_([0-9]*).html$ seite.php?id=$1 [L]

    Nun habe ich meine PHP-Beta-Datei seite.php genannt und
    mit folgendem Inhalt gefüllt:

    PHP-Code:
    <?php

    if($id == 1)
    {
      echo 
    "Kategorie 1";
    }
    elseif(
    $id == 2)
    {
      echo 
    "Kategorie 2";
    }
    elseif(
    $id == 3)
    {
      echo 
    "Kategorie 3";
    }
    ?>

    <a href="seite_1.html">Kategorie 1</a>
    Leider kommt immer die Meldung, dass die Seite der Kategorie 1
    nicht vorhanden ist. Das ist sicherlich berechtigt, aber
    ich habe keine AHnung woran das liegt.

    Kann mir bitte jemand sagen was ich in der PHP Datei ändern muss
    bzw. ob ich überhaupt mit $_GET im PHP-Code arbeiten kann,
    wenn der Aufruf der Datei über seite_$1.html verläuft?
    Zuletzt geändert von kerbstone; 12.03.2006, 17:59.

  • #2
    Benutze $_GET['id'] ... wegen register_globals.

    Kommentar


    • #3
      Danke für die schnelle Antwort, aber funktioniert leider nicht...
      Zuletzt geändert von kerbstone; 12.03.2006, 18:03.

      Kommentar


      • #4
        Schau dir nochmal deine RewriteRule an und überlege, was passiert, wenn ich seite_.html aufrufe und ob das ^ wirklich da stehen soll!

        Kommentar


        • #5
          Bislang habe ich gedacht, dass die Regel:

          RewriteRule ^seite_([0-9]*).html$ seite.php?id=$1 [L]

          dafür steht, dass jede Seite der Form seite_xyz.html,
          wobei xyz variable Zahlen darstellen, die PHP-Seite
          seite.php aufruft mit id als GET Wert.

          Ohne das ^ geht es auch nicht...
          und so steht es auch 1:1 auf modrewrite.de und Praxisbeispiele.
          Zuletzt geändert von kerbstone; 12.03.2006, 18:17.

          Kommentar


          • #6
            Sorry, aber ich verstehe es nicht...

            Kommentar


            • #7
              Also ich war extra modrewrite.de nachsehen: Dort steht kein * sondern ein +. Damit würde seite_.html gar nicht umgeschrieben. Entweder ist das für dich okay oder (nein, eigentlich sowieso) du mußt in deinem PHP-Script beachten, daß die ID auch mal fehlen kann.

              Gegen "geht nicht" hilft ein Blick in die Apache-Logs.

              Kommentar


              • #8
                seite_$1.html
                Und du bist sicher, dass du ein $-Zeichen im Aufruf der Seite hast ? Wenn ja dann ist das kein Wunder, dass es nicht funzt weil $ sicherlich keine Zahl ist und somit dein RegExp nicht matchen kann

                Gruss

                tobi
                Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                Kommentar


                • #9
                  @jahlives: Das hat er/sie nur zur Veranschaulichung geschrieben. In seiner .htaccess stehts anders.

                  Kommentar

                  Lädt...
                  X