Problem mit mod_rewrite

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

  • Problem mit mod_rewrite

    Habe ein Problem mit folgender mod_rewrite-Rule:

    Code:
    RewriteRule ^produkt/(.*).html$ /produkt/modelle.php?hersteller=$1
    RewriteRule ^produkt/daten/(.*)-(.*)/([0-9]+).html$ /produkt/datenblatt.php?id=$3
    RewriteRule ^produkt/test/(.*)-(.*)/([0-9]+)-([0-9]+).html$ /produkt/test.php5?id=$3&pic=$4
    Das komische daran ist, dass die 1. und 2. Regel funktioniert, die 3. Regel jedoch nicht. Wenn ich folgende Seite aufrufe:

    ....ww.domain.de/produkt/test/her-steller-mo-dell/115-1.html

    dann erscheint eine leere Seite.
    (die merkwürdige Schreibweise "her-steller" und "mo-dell" soll darauf aufmerksam machen, dass manche Hersteller einen Bindestrich enthalten (genauso manche Modelle), jedoch nicht alle).

    Kann mir jemand sagen, an was das liegen könnte? Ich verzweifle solangsam...
    Das Genie überblickt das Chaos!

    Wer Rechtschreibfehler findet, darf sie behalten!

  • #2
    Kann mir jemand sagen, an was das liegen könnte?
    Erst wenn du mir sagst, woran es liegen könnte, dass alle Welt meint, mod_rewrite hätte irgendwas mit PHP zu tun.

    Ich verzweifle solangsam...
    Ich auch... Aber so lange verschieb ich noch jeden einzelnen Thread...

    Kommentar


    • #3
      Da du mit den ersten beiden Gruppen eh nix anfängst: Warum gruppierst du sie überhaupt?
      [FONT="Helvetica"]twitter.com/unset[/FONT]

      Shitstorm Podcast – Wöchentliches Auskotzen

      Kommentar


      • #4
        Tschuldigung TobiaZ, selbstverständlich weiß ich, dass PHP nichts mit mod_rewrite zu tun hat.

        @unset: ...das hab ich auch schon probiert, funktioniert hat es aber trotzdem nicht. :-(
        Das Genie überblickt das Chaos!

        Wer Rechtschreibfehler findet, darf sie behalten!

        Kommentar


        • #5
          WAS genau hast du denn probiert?
          [FONT="Helvetica"]twitter.com/unset[/FONT]

          Shitstorm Podcast – Wöchentliches Auskotzen

          Kommentar


          • #6
            Ich habe die 3. Regel wie folgt abgeändert, das Ergebnis war leider das Selbe, eine leere Seite ohne Quelltext und ohne Inhalt.

            Code:
            RewriteRule ^produkt/(.*).html$ /produkt/modelle.php?hersteller=$1
            RewriteRule ^produkt/daten/(.*)-(.*)/([0-9]+).html$ /produkt/datenblatt.php?id=$3
            RewriteRule ^produkt/test/(.*)/([0-9]+)-([0-9]+).html$ /produkt/test.php5?id=$2&pic=$3
            Die zweite Regel funktioniert allerdings... versteh nicht warum die dritte nicht funktioniert.
            Das Genie überblickt das Chaos!

            Wer Rechtschreibfehler findet, darf sie behalten!

            Kommentar


            • #7
              mal die logs angeguckt, welche seite wirklich aufgerufen wird? entsprechend ohne mod rewrite versucht?

              Kommentar


              • #8
                Ohne mod_rewrite funktioniert es wunderbar. Auf die Logs hab ich keinen Zugriff, da ich nur auf gewisse Verzeichnisse Zugriff habe.
                Das Genie überblickt das Chaos!

                Wer Rechtschreibfehler findet, darf sie behalten!

                Kommentar


                • #9
                  Kann es sein, dass die test.php5 trotzdem angesteuert wird? Lass dir doch mal ganz oben das GET-Array ausgeben.
                  [FONT="Helvetica"]twitter.com/unset[/FONT]

                  Shitstorm Podcast – Wöchentliches Auskotzen

                  Kommentar


                  • #10
                    Habe nun versucht ganz oben die übergebene ID auszulesen

                    PHP-Code:
                    echo $_GET['id']; 
                    Ergebnis: leere Seite.
                    Das Genie überblickt das Chaos!

                    Wer Rechtschreibfehler findet, darf sie behalten!

                    Kommentar


                    • #11
                      Hast du mal testweise die Reihenfolge der Regeln geändert. Also die die nicht funzt als erste genommen.
                      Ich kenne mich mit mod_rewrite nicht so genau aus aber irgendwie beschleicht mich das Gefühl, dass immer die erste Regel greift. Hast du auch schon mal probiert extern umzuschreiben? Also dem Client einen Weiterleitungsheader schicken und schauen auf welche URL du weitergeleitest wird.

                      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


                      • #12
                        Mach mal print_r($_GET);
                        [FONT="Helvetica"]twitter.com/unset[/FONT]

                        Shitstorm Podcast – Wöchentliches Auskotzen

                        Kommentar


                        • #13
                          @unset: Ich hab jetzt den print_r($_GET) gesetzt, gibt ebenfalls nur eine leere Seite aus.

                          @jahlives: die Reihenfolge habe ich auch schon geändert, hatte die Regel auch schon als erste Regel in meiner htaccess stehen, brachte ebenfalls nichts. Werde das mit dem Header mal versuchen.

                          Ich sag ja, ich bin langsam am Verzweifeln.
                          Das Genie überblickt das Chaos!

                          Wer Rechtschreibfehler findet, darf sie behalten!

                          Kommentar


                          • #14
                            Die leere Seite stimmt mich etwas skeptisch. Trage doch mal bitte dieses print_r($_GET); in allen Scripten ein, auf die Regeln verweisen. Evtl. lass noch direkt ein __FILE__ mit ausgeben.
                            [FONT="Helvetica"]twitter.com/unset[/FONT]

                            Shitstorm Podcast – Wöchentliches Auskotzen

                            Kommentar


                            • #15
                              Teste nur die eine Regeln
                              Debuggen ohne Logfiles ist natürlich ziemlich fürn ar***

                              Kommentar

                              Lädt...
                              X