[Apache / PCRE] mod_rewrite regex

Pagina: 1
Acties:

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Ik heb het volgende rewrite bestand:

code:
1
2
3
4
5
6
7
8
9
10
11
12
# initialize
Options         +FollowSymLinks
RewriteEngine   On
RewriteBase     /

# rewrite conditions
RewriteCond     %{REQUEST_FILENAME}     !-f
RewriteCond     %{REQUEST_FILENAME}     !-d

# rewrite rules
RewriteRule     ^([a-zA-Z0-9\-]+)/?$    /alazaas/index.php?controller=$1 [L,QSA]
RewriteRule     ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$   /alazaas/index.php?controller=$1&method=$2 [L,QSA]


Nu wil ik een derde regel toevoegen die alle volgende /woord
in $_GET['parameters'] opslaat.
Nu krijg ik de regex niet goed..

als ik [a-zA-Z0-9\_/] doe, wordt ook ////// dit geparsed
als ik achter ..\_]+/?) doe pakt die hetzelfde.

Iemand een idee wat ik fout doe?

mijn naam slaat nergens op, althans niet op mij :P


Verwijderd

How about this:

code:
1
RewriteRule     ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$   /alazaas/index.php?controller=$1&method=$2&parameters=$3 [L,QSA]


En /// kan je ook nog expliciet verbieden met rewritecond

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Rewritecond? ok, ga ik proberen... tips?
want parameter 3 mag nu geen / bevatten, en dat wil ik juist.

mijn naam slaat nergens op, althans niet op mij :P


Verwijderd

Zoolander schreef op donderdag 26 juli 2007 @ 12:01:
Rewritecond? ok, ga ik proberen... tips?
want parameter 3 mag nu geen / bevatten, en dat wil ik juist.
ahh, nu word je duidelijk

probeer eens zoiets:
code:
1
RewriteRule     ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+(/[a-zA-Z0-9\-]+)?)/?$   /alazaas/index.php?controller=$1&method=$2&parameters=$3 [L,QSA]

wat je dan zegt in het laatste stuk:
eerst minimaal 1 teken uit de serie [a-zA-Z0-9\-]
daarna mag je zovaak herhalen als je maar wilt: ( / gevolgd door minimaal 1 teken uit de serie [a-zA-Z0-9\-] )
om het compleet te maken MAG je sluiten met een /, maar hoeft niet

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Ja ik was ook al zoiets aan het proberen, met ((/[a-zA-Z]+)+) en dan $4 pakken, maar dat werkt niet.

Uid0 die van jou lijkt alleen de 1e 2 parameters te pakken, meer dan dat geeft die niet gevonden weer.

mijn naam slaat nergens op, althans niet op mij :P


Verwijderd

oeps, typo
goed gedacht, verkeerd getypt

* = 0 - oneindig keer
? = 0 of 1 keer
+ = 1 - oneindig keer

RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+(/[a-zA-Z0-9\-]+)*)/?$ /alazaas/index.php?controller=$1&method=$2&parameters=$3 [L,QSA]

had ? ipv * staan

  • Zoolander
  • Registratie: Januari 2003
  • Laatst online: 23-11-2022

Zoolander

superslim!

Topicstarter
Ah! Helder hoe je dat gedaan hebt, ook met back-reference!
het gaat er dus om wanneer de ( geopend wordt en zo kon je die () er in plaatsen.
Daar ging het fout bij mij oa.

mijn naam slaat nergens op, althans niet op mij :P

Pagina: 1