redirect com/en naar com

Status
Niet open voor verdere reacties.

damnsharp

Terugkerende gebruiker
Lid geworden
6 jan 2012
Berichten
1.394
Ha collega's, bij een site moet ik globale redirect instellen en wil dat met rewrite rule doen.
Maar kom er niet goed uit, niet mijn sterkste kant rewrite rules ;-)

Een meerdere talen site heeft nu nog de NL talige content staan op .com en de EN talige content op .com/en
Niet logisch, dus ga het omzetten.

Maar hoe zet ik dan een globale redirect op?
Dus:
NL talig gedeelte .com moet geredirect worden naar .com/nl
EN talig gedeelte .com/en moet geredirect worden naar .com/

Thanks!
 
Dan moet je even kijken naar 'Accept language' in combinatie met .htaccess

https://stackoverflow.com/questions/38158156/htaccess-rewrite-accept-language

Dit kan je overigens ook in PHP bepalen, wat veel flexibeler is omdat je ook uit $_SERVER['HTTP_ACCEPT_LANGUAGE'] ook een weging kan extraheren als de client meerdere talen gebruikt.
Maar een ding staat voorop: Laat de gebruiker altijd zelf bepalen in welke taal hij/zij de site wilt bekijken. Persoonlijk zou ik liever .com doorverwijzen naar '/en' om consistent te blijven.

Ik weet niet of je het PHP Kookboek hebt, maar de recepten #108, #109 en #110 gaan hier mooi op in.
Verder biedt het boek, honderden handige snippets met uitleg over bepaalde PHP-vraagstukken. Ik wil het niet promoten, maar ik kan je wel vertellen dat het een aanrader is ;)
 
Laatst bewerkt:
Hoi @php4u, wat fijn dat antwoord. Nee het PHP kookboek heb ik niet dus ga ernaar Googlen.
Jazeker, het is een site met vlaggetjes keuzes dus de bezoeker kan kiezen voor taal.
Gaat me meer om dat in de huidige situatie de NL taal in de hoofd site (.com) staat en dat is niet logisch. Ga dat aanpassen zodat de Engelse taal in .com staat en de NL taal .com/nl en de Franse op .com/fr en de Duitse op .com/de et cetera.
En moet dan vanwege Google redirects in gaan stellen.

Ik ga de code van je link (plaats hem hier even) testen.
Code:
RewriteRule ^en/ - [L]
RewriteRule ^de/ - [L]

RewriteCond %{HTTP:Accept-Language} ^de [NC]
RewriteRule ^ /de%{REQUEST_URI} [L]

RewriteCond %{HTTP:Accept-Language} ^en [NC]
RewriteRule ^ /en%{REQUEST_URI} [L]
 
Nee lukt nog niet. Dit moet er gebeuren:
site.com/test-page -> site.com/en/testing-page
(en dat voor alle pagina's)

site.com/nl/test-pagina -> site.com/testpagina
(en dit ook voor alle pagina's)
 
Als het bedrijf én het overgrote deel van de website bezoekers NL talig is dan zou ik het zo laten.
Extensie .com is dan binnenland (moedertaal) en .com/en/ (of andere taal) is dan buitenland.
Dan heb je, wat betreft performance en seo, de minste redirects, dat vindt Google fijn.

Als het overgrote deel van de bezoekers EN talig is dan is dit zeker zinvol.

Je kan dan in htaccess aan de hand van de browsertaal een redirect doen.
 
Dank je voor je reactie @bron! Ik kreeg van iemand de tip dat het onlogisch is om op de .com site NL talige pagina's te hebben. En dat dit weer niet goed voor Google is. Vandaar dat ik wilde switchen.
Als jij zegt niet doen, hecht ik daar meer waarde aan :)

Het overgrote deel is inderdaad NL talige bezoekers maar er komen ook Engelse, Duitse en in dit geval ook Spaanse bezoekers.


Voor mijn kennis, hoe zou je tóch de redirect instellen?
 
Ik kreeg van iemand de tip dat het onlogisch is om op de .com site NL talige pagina's te hebben.
Deze tip ben ik het niet mee eens. Een .com (= company) heeft niets met een taal te maken en kan wereldwijd gebruikt worden, ook voor pure NL websites.
Weinig redirects zijn belangrijker voor Google en voor bezoekers. Zorg dat voor iedere taalpagina het volgende goed staat en Google is blij.
Code:
<html lang="[B]nl[/B]" dir="ltr">

dir="ltr" (text left to right) is de standaard instelling en dit stukje mag je dus weglaten.

Je kan ook de 4-karakter code gebruiken, bijvoorbeeld nl_NL, nl_BE, fr_BE en fr_FR maar dat is veel werk, alleen de 2-karakter taalcode is makkelijker

Aanvulling. In meertalige websites heb ik maar 1 linkje voor alle talen. Ik zet de browsertaal in een cookie (altijd handig, bijv. voor een ajax call). Aan de hand van de taalcode wordt de juiste head en content aangeboden die bij de taalcode hoort. Een bestaande website is meestal niet om te bouwen naar dit principe.
 
Laatst bewerkt:
Dank je wel @bron voor de aanvulling. Ik laat het op .com staan. De vraag zet ik op opgelost :)
 
Deze tip ben ik het niet mee eens. Een .com (= company) heeft niets met een taal te maken en kan wereldwijd gebruikt worden, ook voor pure NL websites.
Weinig redirects zijn belangrijker voor Google en voor bezoekers. Zorg dat voor iedere taalpagina het volgende goed staat en Google is blij.
Code:
<html lang="[B]nl[/B]" dir="ltr">

dir="ltr" (text left to right) is de standaard instelling en dit stukje mag je dus weglaten.

Je kan ook de 4-karakter code gebruiken, bijvoorbeeld nl_NL, nl_BE, fr_BE en fr_FR maar dat is veel werk, alleen de 2-karakter taalcode is makkelijker

Aanvulling. In meertalige websites heb ik maar 1 linkje voor alle talen. Ik zet de browsertaal in een cookie (altijd handig, bijv. voor een ajax call). Aan de hand van de taalcode wordt de juiste head en content aangeboden die bij de taalcode hoort. Een bestaande website is meestal niet om te bouwen naar dit principe.

Misschien niet overbodig om te zeggen, maar de lang=attribuut wordt ook gebruikt voor de automatische vertalingen in browsers. Als de taal in het attribuut afwijkend is met je browserinstelling, dan kan de browser je een mogelijkheid geven om de pagina on-the-fly te vertalen.
 
dat wist ik niet dus inderdaad niet overbodig om te schrijven :)

hreflang="en" is toch ook goed om te plaatsen hè naar de juiste talen toe
 
de lang=attribuut wordt ook gebruikt voor de automatische vertalingen in browsers.
@php4u. Thanx, wist ik niet.

@damnsharp. De hreflang wordt in linkje gebruikt, ik heb ze ooit gebruikt in een meertalige websites in het "taal" keuzemenu.
Code:
<a href="..." hreflang="nl">Nederlands</a>
<a href="..." hreflang="en">English</a>
<a href="..." hreflang="fr">Français</a>
 
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan