Ankündigung

Einklappen
Keine Ankündigung bisher.

Mod Rewrite - nur für Adressen größer als ?

Einklappen

Neue Werbung 2019

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

  • Mod Rewrite - nur für Adressen größer als ?

    Hallo,

    ist es möglich mit Mod Rewrite einen Teil von Adressen von den Regeln auszuschließen und einen anderen Teil zuzulassen?
    Zum Beispiel: Alle Adressen >50 sollen drauf "anspringen" und alle <50 sollen weiterhin normal aufgerufen werden.

  • #2
    http://www.modrewrite.de/mod_rewrite.syntax.phtml

    Demnach ja.

    Kommentar


    • #3
      Ah, nur wo muss das stehen?

      Kommentar


      • #4
        wie ? wo muss das stehn??? na in einer .htaccess Datei

        Kommentar


        • #5
          Ja, wo muss das in der htaccess stehen? Also wo genau bei der Rewrite Rule? Hab das nicht drauf, mit den Regeln.

          Kommentar


          • #6
            Probiert habe ich das auch noch nicht, aber ich glaube das bezieht sich auf die mod_rewrite Variablen.

            Eine Möglichkeit wäre:
            Code:
            RewriteRule ^test_([0-9])\.html$ test_1.php [L]
            RewriteRule ^test_([1][0])\.html$ test_2.php [L]
            RewriteRule ^test_([1-9]+)\.html$ test_3.php [L]
            Im praktischen Beispiel:
            http://www.cix88.de/test_3.html
            http://www.cix88.de/test_10.html
            http://www.cix88.de/test_26.html

            Kommentar


            • #7
              Hi,

              danke für die Erklärung!
              Es klappt und bei mir siehts so aus:
              Code:
              RewriteRule ^([1-9]+)\.html$ 2007.php?id=$1 [L]
              Nur was ich jetzt nicht verstehe... es werden doch Zahlen kleiner 10 ausgeschlossen, wenn ich jetzt aber 1-50 eingebe wird die Seite 51 nicht mehr gefunden.

              Seite 1-50 ist statisches html und ab 51 will ich jetzt die Daten von der Datenbank holen, falls es wichtig ist?

              Kommentar


              • #8
                In deinem Falle würde ich das dann in etwa so lösen:

                Code:
                0-9 = ^test_([0-9])\.html$
                10-50 = ^test_([1-4][0-9]|[5][0])\.html$
                ab 51-99 = ^test_([5-9][0-9])\.html$
                Am besten mal ausprobieren, hab jetzt nur frei Schnautze getippt.
                Wenn das ganze höher 100 werden soll, müsste man den letzten Wert entsprechend erweitern.

                Kommentar


                • #9
                  Hallo,
                  das verstehe ich soweit, nur scheinbar wird das nicht beachtet, denn es klappt auch so, was ich ein wenig komisch finde:
                  Code:
                  RewriteRule ^(.*)\.html$ 2007.php?id=$1 [L]
                  Wenn ich jetzt 50.html (statisch) aufrufe, dann erscheint die seite
                  und bei 51.html (dynamisch 2007.php?id=51) erscheint auch die richtige Seite.
                  Muss man da dann nichts ausschließen? Das versteh ich irgendwie nicht.

                  Kommentar


                  • #10
                    Muss man da dann nichts ausschließen?
                    Im Prinzip nicht unbedingt, da die Reihenfolge der Einträge von RewriteRule das mit bestimmt.

                    Wenn das
                    Code:
                    RewriteRule ^(.*)\.html$ 2007.php?id=$1 [L]
                    als erstes steht, dann wird ein
                    Code:
                    RewriteRule ^([1-9]+)\.html$ 2007.php?id=$1 [L]
                    was danach kommt, wirkungslos.

                    EDIT:
                    Was mir eben noch eingefallen ist:

                    Du musst nicht unbedingt mod_rewrite dazu benutzen.
                    Wenn du nur nach der Zahl praktisch sortieren willst, kannst du diese Zahl auch mit PHP abfragen, und mittels Header(Location...) dann auf die richtige Datei springen.

                    Kommentar

                    Lädt...
                    X