Reguläre Ausdrücke

Apache, Lighttpd, nginx, Cherokee
LightTech
Posts: 3
Joined: 2010-05-21 20:23

Reguläre Ausdrücke

Post by LightTech » 2010-05-21 20:33

Nabend liebes Team,

ich habe ein Prob mit regulären ausdrücken und möchte das eine bestimmte Aktion nur ausgeführt wird, wenn eine URL folgenden Text nicht beinhaltet:
.gif, .jpg, .png oder images.server.com
(ob eins oder mehrere enthalten sind ist egal, Hauptsache meine Aktion wird dann ausgeführt)

Ich habe es nun mit folgendem versucht:

Code: Select all

$HTTP["url"] !~ "((\.jpg)$|(\.gif)$|(\.png)$|(images\.server\.com))" {
  ...action...
}

aber leider ist daran irgendwas falsch, ich weiß nur nicht was.

Könnt ihr mir bitte helfen und mir den Code anpassen?
Diese regulären Ausdrücke wollen einfach nicht in mein Hirn.

Danke schonmal!

LightTech
Posts: 3
Joined: 2010-05-21 20:23

Re: Reguläre Ausdrücke

Post by LightTech » 2010-05-21 21:49

Fast, nur leider bekomme ich mit deinem Code nur einen parsing regex failed Error. :(

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: Reguläre Ausdrücke

Post by daemotron » 2010-05-21 23:37

^ und $ dürfen als Delimiter nur einmal auftauchen. Ungetestet:

Code: Select all

^.*(\.jpg|\.gif|\.png|images\.server\.com)$

Im übrigen brauchst Du ^ und $ nicht, wenn Du nur das (nicht-)Enthaltensein eines Strings prüfen willst - dann bezieht sich die Prüfung auf die gesamte URL. ^ und $ sind nur nützlich, wenn Du feststellen willst, ob ein bestimmter Ausdruck am Anfang oder Ende der URL vorkommt bzw. ob die gesamte URL einem bestimmten Muster entspricht.
“Some humans would do anything to see if it was possible to do it. If you put a large switch in some cave somewhere, with a sign on it saying 'End-of-the-World Switch. PLEASE DO NOT TOUCH', the paint wouldn't even have time to dry.” — Terry Pratchett, Thief of Time

LightTech
Posts: 3
Joined: 2010-05-21 20:23

Re: Reguläre Ausdrücke

Post by LightTech » 2010-05-22 02:45

Er hat zwar wieder nicht alle Bilder ausgeschlossen, aber so habe ich es zum großen Teil hingekriegt.

Vielen Dank jfreund und auch dir matze!

User avatar
Joe User
Project Manager
Project Manager
Posts: 11138
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Reguläre Ausdrücke

Post by Joe User » 2010-05-22 10:21

Code: Select all

$HTTP["host"] != "images.server.com" {
  $HTTP["url"] !~ "\.(jpg|gif|png)$" {
    ...action...
  }
}
Last edited by Joe User on 2010-05-22 10:24, edited 1 time in total.
PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.