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?
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 ]