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

.htaccess validatie met 404 redirect

Pagina: 1
Acties:

  • NitSuA
  • Registratie: September 2002
  • Laatst online: 26-10 14:23
Ik wordt nu een beetje crazy van die htaccess rewrite rules, vandaar dat ik het even hier post.

Ik heb de volgende url:

www.voorbeeld.com/nl/pagina.html (nederlandse versie)
én
www.voorbeeld.com/pagina.html (default engelse versie)

De redirects op basis van cookies en HTTP_ACCEPT_LANGUAGE wordt in PHP afgehandeld, middels header redirects. Ik verwacht in php de url dan wel als volgt:
www.voorbeeld.com/index.php?lang=en&page=pagina

Nu probeer ik de volgende validatie te maken in .htaccess:

1. lang mag alleen "nl" of "en" zijn, anders 404 pagina tonen.
2. page moet bestaan, dus in dit geval pagina1 (zonder html), pagina2 (zonder html), pagina3 (zonder html), maar dit kunnen er meer worden.
3. page én lang mogen ook leeg zijn, redirects gaan verder in php.

Ik heb nu het volgende:
RewriteRule ^(en|nl)/(.+).html /index.php?lang=$1&page=$2 [L]
RewriteCond %{QUERY_STRING} !page
RewriteRule ([^/]+).html/?$ /index.php?page=$1 [L]

Het probleem is dat ik geen 404 krijg.. kan iemand mij helpen?

[ Voor 9% gewijzigd door NitSuA op 24-05-2013 16:17 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 20-11 11:59

NMe

Quia Ego Sic Dico.

Of iets al dan niet bestaat moet je lekker in PHP checken, dat heeft niks te zoeken in je .htaccess. Tenzij je op onderhoudbaarheid wil inleveren. Probleem 1 heb je als het goed is al opgelost met je (en|nl). En gezien je derde vraag zou ik al helemaal alle rewrites ook in PHP regelen. Gewoon alles wat niet bestaat doorverwijzen naar index.php en daar je urls checken of eventueel een 404 genereren.

Daarnaast: Waar hoort mijn topic? Omdat je eigenlijk vragen stelt over .htaccess zou je vraag in Serversoftware en Windows Servers horen, maar aangezien de meest onderhoudbare oplossing in PHP zit zal ik je topic naar Programming verplaatsen. Webdesign, Markup & Clientside Scripting is in elk geval sowieso verkeerd. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.