Meertalige website met 'fake' folders en htaccess

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

NiVin

niVin

14/11/2009 18:26:00
Quote Anchor link
Hallo allen,

Ik zit met het volgende situatie:
Ik heb een meertalige website opgezet (nl (default), engels en duits). Het kiezen van de taal gaat dmv een $_GET var (voor bijv 'en': *.php?lang=en).
Voor mooie url's kies ik voor 3 fake folders voor de corresponderende talen ('/nl','/en','/de'). Ik heb een eclipse pdt opzet met localhost/mywebsite/public/index.php
Nederlands is de standaard taal en ik wil de 'public' folder uit de url.

mijn huidige htaccess (in localhost/mywebsite/)
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
RewriteEngine on
RewriteBase /mywebsite

#rewrite root naar public en kies standaard 'nl'!
    RewriteRule ^(.*) public/nl/$1 [R=301,L]


#vang de taal op en dmv zet in GET var
    RewriteRule ^public/(nl|en|de|NL|EN|DE)/(.*) public/$2?lang=$1 [NC,L,QSA]
    RewriteRule ^(nl|en|de|NL|EN|DE)$ http://localhost/mywebsite/public/$1/index.php [R=301,L]

#point css, images en js folders to public folder
    RewriteRule ^img/(.+)?$ public/img/$1 [NC,L]
    RewriteRule ^css/(.+)?$ public/css/$1 [NC,L]
    RewriteRule ^js/(.+)?$ public/js/$1 [NC,L]


Dit werkt dus niet. Het aanroepen van de website zou dus moeten gaan met:
localhost/mywebsite en dan moet er direct gepoint worden naar localhost/mywebsite/nl.

Ik hoop dat ik duidelijk genoeg mijn probleem heb geschetst en na uren en uren googlen,kloten en tutorials te hebben doorgrond kom ik er niet meer uit.
Alle hulp is welkom, bij voorbaat dank!
Gewijzigd op 01/01/1970 01:00:00 door NiVin
 
PHP hulp

PHP hulp

15/07/2024 13:56:30
 
NiVin

niVin

16/11/2009 12:54:00
Quote Anchor link
Het probleem is reeds opgelost, de .htaccess ziet er nu zo uit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
RewriteEngine on
RewriteBase /

#remove 'public' folder in url
RewriteRule ^public - [L]

#add a '/' after the language if there is none
RewriteRule ^(nl|en|de|NL|EN|DE)$ $1/ [NC,R]  

#rewrite /[lang]/[file] into public/[file]?lang=[lang]
RewriteRule ^(nl|en|de|NL|EN|DE)/?(.*) public/$2?lang=$1 [NC,L,QSA]

#point css, images en js folders to public folder      
RewriteRule ^img/(.+)?$ public/img/$1 [NC,L]
RewriteRule ^css/(.+)?$ public/css/$1 [NC,L]
RewriteRule ^js/(.+)?$ public/js/$1 [NC,L]

#set the language to default dutch if cookie is not set
RewriteCond %{HTTP_COOKIE} !lang=(.*)                                  
RewriteRule ^([a-zA-Z]*)/?$ nl/$1 [R=301,L,NC]

#if language is in cookie, use it  
RewriteCond %{HTTP_COOKIE} lang=(.*)
RewriteRule ^([a-zA-Z]*)/?$ %1/$1 [R=301,L]


Ik hoop dat iemand er nog iets aan heeft! Al het commentaar ter verbetering is natuurlijk welkom.
Gewijzigd op 01/01/1970 01:00:00 door niVin
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.