Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

modrewrite rules voor taal in URL in getvar plaatsen

Pagina: 1
Acties:

  • SvMp
  • Registratie: September 2000
  • Niet online
Ik probeer een simpele modrewrite rule te schrijven om taal in een URL in een getvar te plaatsen.

De taal is als volgt in de URL verwerkt: mijnsite/<taal>/...

Bijvoobeeld: 'mijnsite/nl/customer' of 'mijnsite/nl/customer'.
Maar ook moet mogelijk zijn: 'mijnsite/customer' (customer-pagina zonder gespecificeerde taal) en 'mijnsite/nl' (startpagina NL).

Ik wil de taal graag apart verwerken en buiten alle andere rules houden.

Dat heb ik nu als volgt:
code:
1
2
RewriteRule ^(nl|en|de|fr)(|/.*)$ $2?locale=$1 [L,QSA,NC]
RewriteRule ^customer/?$ index.php?page=customer [L,QSA,NC]


Probleem:
'mijnsite/nl/de/customer' werkt ook! Door recursie wordt een taal als subdirectory meer dan één keer geaccepteerd.

Daarnaast krijg je vreemde 404-errors. 'mijnsite/nl/de/fr/test' levert de melding 'The requested URL /test was not found on this server.' op. Dat klopt natuurlijk niet, want er wordt verwezen naar '/nl/de/fr/test'.

Met de regel
code:
1
RewriteCond %{QUERY_STRING} !locale=

kan ik er wel voor zorgen dat er slechts één keer een taal verwerkt kan worden, maar dan blijf je zitten met die vreemde 404-errors.

Ik weet dat er recursie optreedt bij de eerste rule. In plaats daarvan wil ik dat na het verwerken van de taal gewoon de overige rules worden verwerkt met de taal uit de te verwerken URL gestript. In plaats van de .htaccess opnieuw uitvoeren. Veel documentatie, nergens oplossingen voor dit probleem.

Hoe los ik dit op?