Rewrite Pattern macht mir zu schaffen

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

  • Rewrite Pattern macht mir zu schaffen

    Noch ein kleines regex problem ...

    Code:
    \.(?(?=css|js)(css|js)([a-zA-Z]+)|([a-zA-Z]+))
    das ist das was ich bis jetzt habe. zweck des ganzes ist eine htaccess rewrite rule in der urls folgender massen aussehen können:

    /de/news

    oder

    /de/news.details

    aber nicht

    /css/main.css

    dummerweise werden duch meine jetzige condition:

    Code:
    RewriteCond %{REQUEST_URI} ([a-z]{2})\/([a-zA-Z\.]+)$
    RewriteRule ([a-z]{2})\/([a-zA-Z\.]+)$ /index.php?lang=$1&module=$2 [L,QSA]
    auch die ganzen .css und .js datein umgeleitet deswegen will ich alles zulassen was:

    news
    news.details o.ä

    aber nicht

    .css oder .js

    in der url am ende hat (es werden auch /css/main.css von dem pattern erfasst)

    ich hab mit dem pattern oben schon die bedingung für, wenn nach dem punkt css oder js kommt dann trifft das pattern nicht zu. ws mir noch fehlt ist die erweiterung für news.details und einfach nur news

    Code:
    [a-z]+\.(?(?=css|js)(css|js)([a-zA-Z]+)|([a-zA-Z]+))
    damit hab ich dann news.details abgedeckt und news.css wird dann ignoriert aber was is wenn ich nur news habe!?!?!?!? das soll auch durchgehen

    HELP
    Zuletzt geändert von frank7l7; 12.12.2007, 14:00.

  • #2
    Problembeschreibungen scheinen nicht deine Stärke zu sein. Nachdem ich bei deinem letzten Post irgendwie erraten habe, was du meinen könntest, verstehe ich diesmal fast gar nichts mehr.
    Sag einfach mal klar und präzise, was du eingeben willst, und was rauskommen soll.
    Gruss
    H2O

    Kommentar


    • #3
      echt so unverständlich? huch na dann vielleicht so:

      erlaubt sollen folgende zeichenketten sein:

      news
      news.details
      news.cssx

      nicht erlaubt hingegen:

      news.css
      .css
      .

      news und details können natürlich irgend ein anderer string sein. wichtig ist das urls zu .css und .js dateien nicht durchgehen. Rauskommen soll gar nix es soll nur ein preg_match() sein gültig oder ungültig

      Kommentar


      • #4
        Also auf deutsch:
        alle Dateien sind gültig, ausser denjenigen, die mit ".js" oder ".css" enden. Verstehe ich das richtig?
        Code:
        /\.(css|js)$/Ui
        Ist natürlich umgekehrt, d.h. du musst die Abfrage verneinen.
        Gruss
        H2O

        Kommentar


        • #5
          Hmmm ja nee - ich dachte ich hatte mich im zweiten post besser ausgedrückt. Gültiger String:

          /de/news.details

          aber auch gültig:

          /de/news

          nicht gültig:

          /js/main.js
          css/main.css

          Wie gesagt hier gehts um die Apache Rewrite Conditions. Ich hab jetzt einfach 2 draus gemacht. Wen es interessiert, hier:


          Code:
          RewriteCond %{REQUEST_URI} ([a-zA-Z]{2})\/([a-zA-Z]+\.(?(?=css|js|gif|jpg)(css|js|gif|jpg)[a-zA-Z]+|[a-zA-Z]+))$
          RewriteRule ([a-zA-Z]{2})\/([a-zA-Z]+\.(?(?=css|js|gif|jpg)(css|js|gif|jpg)[a-zA-Z]+|[a-zA-Z]+))$ /index.php?lang=$1&module=$2 [L,QSA]
          
          RewriteCond %{REQUEST_URI} ([a-zA-Z]{2})\/([a-zA-Z]+)$
          RewriteRule ([a-zA-Z]{2})\/([a-zA-Z]+)$ /index.php?lang=$1&module=$2 [L,QSA]
          Die Lösung hatte ich ja fast - mir hat nur noch gefehlt wie man die beiden Patterns in eins bekommt.

          Kommentar

          Lädt...
          X