mod_rewrite Problem

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

  • mod_rewrite Problem

    Ich möchte für mein Webprojekt mod_rewrite benutzen. Es ist bei meinem Hoster auch installiert, nur habe ich folgendes Problem:

    Beim Aufruf von http://blabla.de/test/123.html wird richtigerweise mein php-Script test.php aufgerufen, allerdings ist die Variable $_GET['id'] ohne Inhalt.

    Der Aufruf von http://blabla.de/test123.html funktioniert dagegen tadellos.

    meine .htaccess:

    Code:
    RewriteEngine on
    RewriteRule ^test([0-9]+)\.html$ test.php?id=$1
    RewriteRule ^test/([0-9]+)\.html$ test.php?id=$1 [L]
    mein testscript:
    PHP-Code:
    <?php
    echo "Testscript<p>\n";
    echo 
    $_GET['id'];
    ?>
    Ich weiß absolut nicht mehr weiter. Auf meiner lokalen Testumgebung funktioniert es, nur online nicht.

  • #2
    hast du es auch mal ohne dem [L] probiert?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Ja, daran liegt es nicht. Das [L] weist den APACHE Server nur auf das Ende der Regeln hin.

      Kommentar


      • #4
        setze den zahlen mal einen buchstaben vorweg.

        z.b. /test/a123.html

        also

        Code:
        RewriteRule ^test/a([0-9]+)\.html$ test.php?id=$1
        INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


        Kommentar


        • #5
          Komischerweise wird dann ebenfalls test.php aufgerufen, obwohl die RewriteRule die id Variable auf Zahlen beschränkt. Trotzdem hat $_GET['id'] keinen Inhalt.

          // edit:
          Hab deinen Code vorher nicht gesehen
          Bringt aber auch nichts. Problem bleibt bestehen.
          Zuletzt geändert von SKlappi; 07.04.2004, 22:34.

          Kommentar


          • #6
            Bin jetzt etwas schlauer...

            wenn ich meine .htaccess Datei ändere in:

            Code:
            RewriteEngine on
            RewriteRule ^folder/([0-9]+)\.html$ test.php?id=$1 [L]
            und http://blabla.de/folder/123.html aufrufe, wird 123 ausgegeben.

            Also so wie sich Scriptname und der Mustername unterscheiden, funktioniert es.

            Scheinbar hat es etwas mit folgendem Verhalten auf meinem Webserver zu tun. Wenn ich test?id=blup aufrufe, also ohne Dateiendung, wird das Script trotzdem aufgerufen.

            Wie lässt sich dieses Verhalten beeinflussen/abschalten?

            Kommentar


            • #7
              mhm. ich hatte eben noch gedacht, dass es an test liegt, da dieser name ein zustand unter linux/unix-umgebungen ist.

              aber bei einem test mit meiner RWE funktionierte es perfekt. allerdings linke ich nicht auf eine test.php, sondern auf eine index3.php.

              teste das mal bitte bei dir ... einfach die test.php mal umbenennen.
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Original geschrieben von SKlappi
                Scheinbar hat es etwas mit folgendem Verhalten auf meinem Webserver zu tun. Wenn ich test?id=blup aufrufe, also ohne Dateiendung, wird das Script trotzdem aufgerufen.

                Wie lässt sich dieses Verhalten beeinflussen/abschalten?
                ja, damit habe ich mich auch schon rumgeärgert.

                dafür ist die option MultiViews verantwortlich.

                schalte diese also einfach mal ab, in dem du in deiner .htaccess die zeile
                Options -MultiViews
                (bzw. ergänze deine bestehende Options-zeile um diesen wert.)
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Danke! Das hat geholfen.

                  Kommentar


                  • #10
                    fein. dann werde ich das jetzt auch mal bei mir einbauen. und vorher mal einen test machen, mit index3 ... da dürfte vermutlich der gleiche fehler auftreten.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar

                    Lädt...
                    X