Voor een meertalige website wil ik dit soort URLs: www.website.xyz/<locale>/content/45
De locale kan enkel een taal zijn (nl, fr, etc..) of een volledige lokale (nl_NL, nl_BE, fr_BE, etc.).
Naast /content zijn er nog een stuk of 10 mogelijkheden.
Op Got en via Google genoeg te vinden over hoe je dit in .htaccess plaatst. Er zoveel locales dat ik het valideren van de locale door PHP laat doen.
Het is echter ook mogelijk om de site te bezoeken via: www.website.xyz/content/45.
In dat geval wordt de locale gedetecteerd, er wordt verder niet doorverwezen naar een URL met locale. Een URL zonder locale levert autodetectie op en volstaat voor de meeste bezoekers. Een URL met locale is vooral voor links waarin de locale expliciet gekozen wordt.
Dit betekent dus dat het gedeelte <locale> dus leeg kan zijn.
Hoe doe ik dat in .htaccess? Niets over kunnen vinden.
Volgens mij zijn er 3 opties:
1. Volledig door PHP laten afhandelen
www.website.xyz/*/* -> index.php?locale=$1&page=$2
www.website.xyz/* -> index.php?page=$2
Heeft niet mijn voorkeur, er zijn ook URLs met méér niveaus en andere get-vars.
2. Alle onderdelen dubbel
www.website.xyz/*/content -> index.php?locale=$1&page=content
www.website.xyz/content -> index.php?page=content
www.website.xyz/*/admin -> index.php?locale=$1&page=content
www.website.xyz/admin -> index.php?page=content
etc..
3. Elk onder deel slechts één keer. Dit heeft mijn voorkeur!
Maar hoe doe ik dat?
De locale kan enkel een taal zijn (nl, fr, etc..) of een volledige lokale (nl_NL, nl_BE, fr_BE, etc.).
Naast /content zijn er nog een stuk of 10 mogelijkheden.
Op Got en via Google genoeg te vinden over hoe je dit in .htaccess plaatst. Er zoveel locales dat ik het valideren van de locale door PHP laat doen.
Het is echter ook mogelijk om de site te bezoeken via: www.website.xyz/content/45.
In dat geval wordt de locale gedetecteerd, er wordt verder niet doorverwezen naar een URL met locale. Een URL zonder locale levert autodetectie op en volstaat voor de meeste bezoekers. Een URL met locale is vooral voor links waarin de locale expliciet gekozen wordt.
Dit betekent dus dat het gedeelte <locale> dus leeg kan zijn.
Hoe doe ik dat in .htaccess? Niets over kunnen vinden.
Volgens mij zijn er 3 opties:
1. Volledig door PHP laten afhandelen
www.website.xyz/*/* -> index.php?locale=$1&page=$2
www.website.xyz/* -> index.php?page=$2
Heeft niet mijn voorkeur, er zijn ook URLs met méér niveaus en andere get-vars.
2. Alle onderdelen dubbel
www.website.xyz/*/content -> index.php?locale=$1&page=content
www.website.xyz/content -> index.php?page=content
www.website.xyz/*/admin -> index.php?locale=$1&page=content
www.website.xyz/admin -> index.php?page=content
etc..
3. Elk onder deel slechts één keer. Dit heeft mijn voorkeur!
Maar hoe doe ik dat?
[ Voor 3% gewijzigd door SvMp op 22-01-2012 12:38 ]