[regex] Alles behalve dit woord

Pagina: 1
Acties:

  • pim
  • Registratie: Juli 2001
  • Laatst online: 20-04 04:12
In Apache wil ik álles behálve "index.html" redirecten naar.. "test.html"..

code:
1
RewriteRule /[^index.html]  /test.html


Dit zorgt er voor dat alles waar 1 van die tekens in zit(i.n.d.e.x. etc) NIET redirect naar test.html, en de rest wel..

Ik zoek dus een manier dat ie index.html ziet als een woord..
Groeperen werkt iig niet..:

code:
1
RewriteRule /[^(index.html)]    /test.html

[ Voor 4% gewijzigd door pim op 06-12-2005 17:04 ]


  • Koetjeboe
  • Registratie: Maart 2002
  • Laatst online: 20-04 11:27

Koetjeboe

Boe, zegt de koe

Kun je niet gewoon 2 regels gebruiken?

RewriteRule ^index.html index.html [L,QSA]
RewriteRule ^.*$ test.html [L,QSA]

En die index.html moet dan wel echt geschreven zijn ;) Anders gewoon

RewriteRule ^$ index.html erbij doen

[ Voor 32% gewijzigd door Koetjeboe op 06-12-2005 17:06 ]


Verwijderd

Daar heb je een RewriteCond voor...

  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 16:06

Salandur

Software Engineer

[] controleert of een van de genoemde caracters er in voor komt.
de juiste expressie is:
code:
1
RewriteRule    ^index.html    test.html

al dan niet met voorloop /

Assumptions are the mother of all fuck ups | iRacing Profiel


  • pim
  • Registratie: Juli 2001
  • Laatst online: 20-04 04:12
Maar ^ zegt buiten de [ ] dat het het begin van de regel moet zijn..

Ik zal die link eens checken..

  • Salandur
  • Registratie: Mei 2003
  • Laatst online: 16:06

Salandur

Software Engineer

pim schreef op dinsdag 06 december 2005 @ 17:23:
Maar ^ zegt buiten de [ ] dat het het begin van de regel moet zijn..

Ik zal die link eens checken..
je hebt gelijk, mijn fout

dit zou dan wel goed moeten zijn:
code:
1
RewriteCond REQUEST_URI !index.html

of
code:
1
RewriteCond REQUEST_URI !.*index.html

Assumptions are the mother of all fuck ups | iRacing Profiel


  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Je zou ^(index.html) kunnen proberen, maar ik weet niet zeker of dat werkt voor apache (volgens mij werkt het in perl of java niet ;)). Eigenlijk moet je de . wel escapen, anders matcht indexyhtml ook.

In java werkt:
code:
1
.*[^(index.html)].*

[ Voor 44% gewijzigd door Confusion op 06-12-2005 21:41 ]

Wie trösten wir uns, die Mörder aller Mörder?


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

[] geeft toch een character set aan? Dus geen i, n, d, e, x, ., h, t, m en l? Of werken de rewrite-regexp net weer anders? Dus al die voorbeelden met [] lijken me niet zo handig.

Om een niet-regexp op te zetten moet je met lookahead/lookback werken. Ik zou alleen niet weten of dat met de rewrite-condities mogelijk is, dat zal je even uit moeten zoeken.

[ Voor 9% gewijzigd door ACM op 06-12-2005 22:50 ]

Pagina: 1