Hallo
Ik probeer iets te maken waarmee de taal van de website gewijzigd kan worden en met op dezelfde pagina blijft. Dat kan ik gewoon doen met een variabele in de url. Het probleem is dat de website gebruik maakt van htaccess url's. Dit kan bv .be/contact of .be/contact/kaart maar ook zoeken/q=test&cat=1. In het laatste geval loop ik vast met de dubbele &
Ik zit op dit moment in de richting van $_SERVER['REQUEST_URI'] maar ik loop vast ... iemand een tip om me in de goede richting te zetten?
Dit had ik ook nog in mijn htaccess staan :
RewriteRule ^([a-z]+)/(.*) index.php?lg=$1&url=$2
Groeten
Wesley
- wijzigen van taal en op pagina blijven
-
09-09-2016, 14:57 #1
- Berichten
- 940
- Lid sinds
- 15 Jaar
wijzigen van taal en op pagina blijven
-
-
09-09-2016, 17:47 #2
- Berichten
- 390
- Lid sinds
- 16 Jaar
Re: wijzigen van taal en op pagina blijven
Wat voor oplossing zoek je?
Je kan het doormiddel van $_SESSION['taal'] doen bijvoorbeeld, of je zou het via een cookie vast kunnen zetten..
Een sessie verdwijnt na het opnieuw bezoeken van je website
Een cookie heeft eigenlijk geen verloop datum
Of wil je iets als:
if .be dan taal X
if .nl dan taal Y?
-
10-09-2016, 00:53 #3
- Berichten
- 45
- Lid sinds
- 16 Jaar
Re: wijzigen van taal en op pagina blijven
Een cookie heeft wel degelijk een verloopdatum, al is die optioneel.
-
10-09-2016, 09:09 #4
- Berichten
- 940
- Lid sinds
- 15 Jaar
Re: wijzigen van taal en op pagina blijven
Op dit moment maak ik een $_SESSION['redirect'] aan, iedere keer een pagina geladen wordt. Op die manier kan ik gewoon linken naar .com/nl of .com/eng - helemaal bovenaan de pagina doe ik dan header("Location: ".$_SESSION['redirect']); voor de redirect. Dat werkt goed en het maakt niet uit wat de url is ... dat is niet helemaal zoals ik het zou willen.
Ik zou graag zowel taal als url verwerken zodat ik via de url een gebruiker naar de juiste pagina EN de juiste taal kan sturen. Voor eenvoudige url's lukt me dat maar bij specialere url's heb ik problemen ( bv : .be/contact/kaart ) uiteindelijk zou het moeten worden .be/nl/contact/kaart of .be/eng/contact/map - beide talen ( kaart + map ) verwerk ik in de htaccess ... het is dus vooral de toevoeging van de taal in de url.
EDIT : de taal ga ik inderdaad nog in een COOKIE zetten, bedankt voor de tip!
-
10-09-2016, 09:37 #5
- Berichten
- 390
- Lid sinds
- 16 Jaar
Re: wijzigen van taal en op pagina blijven
Met de cookie hoef je dus ook niets in de url te zetten :)
voor inspiratie:
http://dallascao.com/en/use-cookies-to-remember/
http://stackoverflow.com/questions/4...lick-of-a-link
-
10-09-2016, 10:27 #6
- Berichten
- 940
- Lid sinds
- 15 Jaar
Re: wijzigen van taal en op pagina blijven
Dit heb ik nu in mijn .htaccess :
Code:RewriteRule ^de/(.*)$ index.php?lg=de&url=$1 RewriteRule ^eng/(.*)$ index.php?lg=eng&url=$1 RewriteRule ^fr/(.*)$ index.php?lg=fr&url=$1 RewriteRule ^nl/(.*)$ index.php?lg=nl&url=$1
Ik geef als url : www.domein.com/fr/contact
De bezoeker komt uit op : www.domein.com/contact ( in het Frans )
Dit lijkt me goed te werken, ook voor $_GET variabelen en url's zoals .com/aaa/bbb/ccc
Omslachtig wel ... dus eenvoudigere alternatieven zijn zeker welkom.
-
10-09-2016, 10:33 #7
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Re: wijzigen van taal en op pagina blijven
Je moet ergens deze kant op, denk ik...
RewriteEngine On
RewriteBase /
# Url zonder taal specificatie default naar /nl/ redirecten.
RewriteCond %{QUERY_STRING} !taal=(nl|en)
RewriteRule ^$ nl/ [R=301,L]
# Als de url /nl of /en is, voeg een slash toe en redirect hem weer.
RewriteRule ^(nl|en)$ $1/ [R=301,L]
# De url heeft nu een domein.be/nl/xxxxx formaat of domein.be/en/xxxxx waarbij xxxx wel of niet aanwezig is.
RewriteRule ^(nl|en)/([a-z]+)/(.*) index.php?taal=$1&lg=$2&url=$3 [L]
Maar niet getest...
In elk geval zou je uiteindelijk wel een extra parameter taal=nl of taal=en erin moeten hebben, waarbij nl de default is
-
11-09-2016, 10:54 #8
- Berichten
- 940
- Lid sinds
- 15 Jaar
Re: wijzigen van taal en op pagina blijven
Ik zie bij andere websites dat er inderdaad meestal een taal in de url staat.
Dus bijvoorbeeld : www.domein.com/nl/contact of www.domein.com/fr/contact
Volgens mij maak ik het mezelf onnodig moeilijk om de taal te willen verwijderen, niet?
Als ik het goed begrijp staat er in uw url dan : taal=nl vermeld?
Kan dat ook gewoon .../nl/... of ... /fr/... worden?
Helaas ken ik niet genoeg van .htaccess om uw code hierop aan te passen ... :-(
Je moet ergens deze kant op, denk ik...
RewriteEngine On
RewriteBase /
# Url zonder taal specificatie default naar /nl/ redirecten.
RewriteCond %{QUERY_STRING} !taal=(nl|en)
RewriteRule ^$ nl/ [R=301,L]
# Als de url /nl of /en is, voeg een slash toe en redirect hem weer.
RewriteRule ^(nl|en)$ $1/ [R=301,L]
# De url heeft nu een domein.be/nl/xxxxx formaat of domein.be/en/xxxxx waarbij xxxx wel of niet aanwezig is.
RewriteRule ^(nl|en)/([a-z]+)/(.*) index.php?taal=$1&lg=$2&url=$3 [L]
Maar niet getest...
In elk geval zou je uiteindelijk wel een extra parameter taal=nl of taal=en erin moeten hebben, waarbij nl de default is
-
11-09-2016, 11:19 #9
64BitsWebhosting.EU
- Berichten
- 2.085
- Lid sinds
- 18 Jaar
Re: wijzigen van taal en op pagina blijven
Nee, in de url staat dan gewoon /nl/, het ?taal=nl deel is de parameter die je dan in script met $_GET['taal'] kunt uitlezen, net zoals 'lg' of 'url'.
-
11-09-2016, 11:39 #10
- Berichten
- 940
- Lid sinds
- 15 Jaar
Re: wijzigen van taal en op pagina blijven
Voorlopig heb ik het onderstaande via .htaccess ( zeer basic )
Code:RewriteEngine On # eenvoudige url RewriteRule ^fr/contact$ index.php?lg=fr RewriteRule ^nl/contact$ index.php?lg=nl # meerdere slashes RewriteRule ^fr/aa/bb$ index.php?lg=fr RewriteRule ^nl/aa/bb$ index.php?lg=nl # url met extra variabelen in url ( bv fr/zoeken?test=ok ) RewriteRule ^fr/zoeken$ index.php?lg=fr [QSA,L] RewriteRule ^nl/zoeken$ index.php?lg=nl [QSA,L] # url met extra variabelen in url ( bv nl/nieuws-15/abc-def ) RewriteRule ^nl/nieuws-([0-9]+)/([A-Za-z0-9-]+)$ index.php?lg=nl&id=$1&check_url=$2 RewriteRule ^fr/nouveau-([0-9]+)/([A-Za-z0-9-]+)$ index.php?lg=fr&id=$1&check_url=$2
De url's zullen in de verschillende talen verschillend zijn ( bv nl/start - eng/home - fr/accueil )
Zo wordt het natuurlijk wel omslachtig wanneer er talen gaan bijkomen. Ik vraag me af of dit beter kan?
EDIT : ik overweeg dus om de taal ALTIJD in de url te houden, wat denken jullie?Laatst aangepast door WesleyVN : 11-09-2016 om 11:53
-
11-09-2016, 12:49 #11
- Berichten
- 940
- Lid sinds
- 15 Jaar
Re: wijzigen van taal en op pagina blijven
Ik kan eventueel ook de taal ALTIJD in de url vermelden.
Iets in de trend van : www.domein.com/nl/contact of zou u dat niet doen?
Met de cookie hoef je dus ook niets in de url te zetten :)
voor inspiratie:
http://dallascao.com/en/use-cookies-to-remember/
http://stackoverflow.com/questions/4...lick-of-a-link
-
12-09-2016, 08:03 #12
- Berichten
- 5.661
- Lid sinds
- 18 Jaar
Re: wijzigen van taal en op pagina blijven
Hanteer daarom dit uitgangspunt:
- De linkbuilding en SEO van alle talen mag "samen gaan": gebruik directories zoals https://domein.tld/en/ voor de talen.
- De linkbuilding en SEO van alle talen moet gescheiden blijven: gebruik subdomeinen zoals https://en.domein.tld voor de talen
Zoekmachines zien subdomeinen namelijk als aparte domeinen.
-
12-09-2016, 08:26 #13
- Berichten
- 940
- Lid sinds
- 15 Jaar
Re: wijzigen van taal en op pagina blijven
De website zal in alle talen dezelfde structuur en inhoud hebben, enkel de tekst zal vertaald worden.
Als ik het goed begrijp kies ik dan best voor de eerste optie ( www.domein.com/nl ) - juist ?
De $_SESSION kan ik ook laten vallen vermits de taal in de url verwerkt zit.
Een $_COOKIE blijft volgens mij handig wanneer men gewoon naar www.domein.com surft.
Bedankt voor de uitleg !
Niet alleen jezelf, maar ook de zoekmachines. Hoe kunnen die alle talen van de website goed gaan indexeren? Hoe weet die spider, die waarschijnlijk default op Engels is ingesteld, ook de andere talen te vinden en alles goed van elkaar gescheiden te houden als alle talen één en dezelfde URL hebben?
Hanteer daarom dit uitgangspunt:
- De linkbuilding en SEO van alle talen mag "samen gaan": gebruik directories zoals https://domein.tld/en/ voor de talen.
- De linkbuilding en SEO van alle talen moet gescheiden blijven: gebruik subdomeinen zoals https://en.domein.tld voor de talen
Zoekmachines zien subdomeinen namelijk als aparte domeinen.
-
12-09-2016, 09:35 #14
- Berichten
- 940
- Lid sinds
- 15 Jaar
Re: wijzigen van taal en op pagina blijven
Momenteel heb ik dit :
PHP Code:// set languages
$arr_client_languages = array("nl", "fr");
// from url
$language = $_GET['lg'];
// no language + valid cookie > redirect to language
if(empty($language) && in_array($_COOKIE['lg'], (array)$arr_client_languages)){
header("Location: ".$_COOKIE['lg']."/"); exit(); }
// no language || lg not active > redirect to main language
elseif(empty($language) || !in_array($language, (array)$arr_client_languages)){
header("Location: ".$arr_client_languages[0]."/"); exit(); }
// language != cookie && valid language > update cookie ( 100 days valid )
elseif($language!=$_COOKIE['lg'] && in_array($language, (array)$arr_client_languages)){
setcookie("lg", $language, time()+60*60*24*100, "/"); }
// url after language
$url_after_language_part = substr($_SERVER['REQUEST_URI'], strpos($_SERVER['REQUEST_URI'], "/".$language."/") + strlen($language)+1);
Het werkt maar opmerkingen/verbeteringen zijn altijd welkom.Laatst aangepast door WesleyVN : 12-09-2016 om 09:42
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic