Archief - SEO - twee talen

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Brtjh

Legacy Member
Hallo!

Als ik een website maak die meerdere talen gebruik dan maak ik het volgende:
- vlagjes die de taal aanduiden
- als je op een vlagje klikt dan wordt er een cookie/session aangemaakt om de keuze te onthouden.
- bij het openen van de site wordt de cookie gezocht en uitgelezen. Bestaat die niet dan is de taal standaard Engels.

Aan de hand van de keuze (in dit geval en of es) wordt een file ingevoegd met de gekozen taal (en.php of es.php) met de content.
Producten komen uit een DB die beide talen bevat (title_en/title_es of description_en/description_es)

Het systeem werkt perfect maar volgens mij is het alles behalve SEO vriendelijk.

Wat is de beste manier om dit aan te pakken?

Ik heb gelezen over subdirectories versus subdomains en eerlijk gezegd weet ik niet wat er precies moet gebeuren aangezien SEO redelijk nieuw is voor me.

Alvast bedankt!

Shaddix

Legacy Member
dat is geen al te groot probleem voor de SEO

in uw PHP pagina's staat de uiteindelijke tekst missschien niet, maar de search engines zien uw code ook helemaal niet
de search engineszien enkel het resultaat van de code, en daar staat de tekst dus wél in, waardoor de search engines uw pagina's even goed kunnen indexeren als elke andere site

je kan wel best zorgen dat de primaire taal degene is waar jij denkt het meest bezoekers mee te lokken

subdomeinen lijken mij ook zeker geen slecht idee

verbeter mij als ik fout ben!

adrianhates

Legacy Member
site.be/nl/content
site.be/fr/content

is the way to go me dunkt.. Uw php code en hoe de uiteindelijke broncode tot stand komt heeft hier niks mee te maken..

subdirectories heeft er ook niks mee te maken.. Uiteindelijk kunt ge gewoon met uw index.php dynamisch pagina's includen en gaat ge uw URI herschrijven via .htaccess.

Vlaggekes zou ik ni doen .. ik zet gewoon EN / NL / FR / DE

Curahee Q

Legacy Member
Zo doe ik het ook op Automated Products Services - Over APS. Geen subdirectories maar wordt gewoon met htaccess geredirect naar de index.php pagina. En dan haal ik met $_SERVER['REQUEST_URI'] het achterste gedeelte op van de url. En dan kijk ik welke taal het is en welke pagina en laad ik de juiste content uit de database.

Voor de taal kijk ik eerst of er een cookie is geset. Is dit niet het geval, dan kijk ik naar de taal van de browser. Bestaat die taal niet neem ik nederlands als default. Maar zo heb je wel een betere gok naar de correcte taal.

Brtjh

Legacy Member
Nice, bedankt voor de tips!
Ik probeer zoveel mogelijk info in te winnen over mod_rewrite(). Ik heb ook even getest of m'n hosting het ondersteunt en jawel hoor.

Ivm de afbeeldingen ipv tekst. Zijn die niet evenwaardig (op het vlak van SEO) als je title en alt tags gebruikt?

Fr3aK

Legacy Member
Ge kunt ook <html xml:lang="en" lang="en"> en <html xml:lang="es" lang="es"> toevoegen aan uw code, zal ook wel helpen.

adrianhates

Legacy Member
Brtjh zei:
Nice, bedankt voor de tips!
Ik probeer zoveel mogelijk info in te winnen over mod_rewrite(). Ik heb ook even getest of m'n hosting het ondersteunt en jawel hoor.

Ivm de afbeeldingen ipv tekst. Zijn die niet evenwaardig (op het vlak van SEO) als je title en alt tags gebruikt?

het is eerder een usability kwestie.. Qua code / seo maakt het geen verschil..

adrianhates

Legacy Member
neenee:

site.be/nl/contacteer-ons
site.be/fr/contactez-nous

gij werkt dus duidelijk wel met (sub)directories? :)

Er staat trouwens content, niet contact :D

Shaddix

Legacy Member
Dubbelpunt zei:
die .html zou nog beter zijn voor SEO

och zot? de trend is net "clean url"

en dus jij wil ook zeggen dat .php's of .aspx minder SEO-vriendelijk zijn?:ironic:

Brtjh

Legacy Member
De talen zijn geen probleem.

Front
Code:
localhost/EN
localhost/ES

.htaccess
Code:
RewriteEngine on
RewriteRule ^en$ index.php?setlang=eng
RewriteRule ^es$ index.php?setlang=es

Wat ik uiteindelijk wil bereiken voor de shop is ipv

Code:
products.php?catid=1&subcatid=7&prodid=14

is

Code:
taal/products/categorienaam/subcategorienaam/productnaam.html

Ik kan een functie maken die de link herschrijft voor de front(namen ipv ids en chars filteren zoals spaties etc) maar wat is de beste manier om de htaccess aan te pakken? Ik heb gelezen dat je de htaccess kan verwijzen naar een php file..

Oh regex, how you make my head hurt... :baard:

adrianhates

Legacy Member
Code:
RewriteBase /
RewriteEngine On

RewriteRule ^([-A-Za-z0-9]+)/([-A-Za-z0-9]+)/([-A-Za-z0-9]+)$ index.php?language=$1&page=$2&subpage=$3 [L]
RewriteRule ^([-A-Za-z0-9]+)/([-A-Za-z0-9]+)$ index.php?language=$1&page=$2 [L]
RewriteRule ^([-A-Za-z0-9]+)$ index.php?language=$1 [L]
RewriteRule ^$ index.php?language=nl [L]

Hier moete al wel iet mee kunne doen ze :) Geen tijd om het uit te leggen , zit op werk :D

Brtjh

Legacy Member
adrianhates zei:
Code:
RewriteBase /
RewriteEngine On

RewriteRule ^([-A-Za-z0-9]+)/([-A-Za-z0-9]+)/([-A-Za-z0-9]+)$ index.php?language=$1&page=$2&subpage=$3 [L]
RewriteRule ^([-A-Za-z0-9]+)/([-A-Za-z0-9]+)$ index.php?language=$1&page=$2 [L]
RewriteRule ^([-A-Za-z0-9]+)$ index.php?language=$1 [L]
RewriteRule ^$ index.php?language=nl [L]

Hier moete al wel iet mee kunne doen ze :) Geen tijd om het uit te leggen , zit op werk :D

Hoe zien je links er dan uit? (href, css, js, ...)
Als ik op een link klik dan verdwijnt m'n css, images, js
Ik zoek info op over 'RewriteBase' want m'n fout zit in het gebruik van '/' in mn links..
Slash ervoor, slash erna, beide, .. aaah! :doh:

Brtjh

Legacy Member
adrianhates zei:
ge moet nen base href gebruiken :)

Alles staat nog lokaal (fyi)

htaccess
Code:
RewriteEngine On

RewriteBase /shop_new/

RewriteRule ^([-A-Za-z0-9]+)/([-A-Za-z0-9]+)/([-A-Za-z0-9]+)$ index.php?setlang=$1&action=$2&catid=$3 [L]
RewriteRule ^([-A-Za-z0-9]+)/([-A-Za-z0-9]+)$ index.php?setlang=$1&action=$2 [L]
RewriteRule ^([-A-Za-z0-9]+)$ index.php?setlang=$1 [L]

Het switchen van taal lukt zonder probleem.
Als ik dan op contact klik krijg ik alle content maar verdwijnt m'n css en js ed. De taal-link wordt ook shop_new/es/es (2 keer dus..)

invoegen CSS
Code:
<link rel="stylesheet" type="text/css" href="css/home.css" />

:sad:

Shaddix

Legacy Member
Code:
RewriteCond %{REQUEST_URI} !^/css/?$
RewriteCond %{REQUEST_URI} !^/javascript/?$

voeg dat er eens aan toe (onder de andere rules), dan zouden de andere rewriterules voor de map css en javascript moeten genegeerd worden

Brtjh

Legacy Member
Shaddix zei:
Code:
RewriteCond %{REQUEST_URI} !^/css/?$
RewriteCond %{REQUEST_URI} !^/javascript/?$

voeg dat er eens aan toe (onder de andere rules), dan zouden de andere rewriterules voor de map css en javascript moeten genegeerd worden

Hetzelfde resultaat.. Ik snap niet wat er verkeerd is. Ik heb de indruk dat m'n '/' gebruik alles in de war stuurt.

Code:
RewriteEngine On

RewriteBase /shop_new/

RewriteRule ^([-A-Za-z0-9]+)/([-A-Za-z0-9]+)/([-A-Za-z0-9]+)$ index.php?setlang=$1&action=$2&catid=$3 [L]
RewriteRule ^([-A-Za-z0-9]+)/([-A-Za-z0-9]+)$ index.php?setlang=$1&action=$2 [L]
RewriteRule ^([-A-Za-z0-9]+)$ index.php?setlang=$1 [L]

RewriteCond %{REQUEST_URI} !^/css/?$
RewriteCond %{REQUEST_URI} !^/js/?$

Code:
<link rel="stylesheet" type="text/css" href="css/preview.css" />
<script type="text/javascript" src="js/preview.js"></script>
<a href="en">EN</a> 
<a href="<?php echo $lang_sel; ?>/home">Home</a>

Waar moet een slash voor en waar niet? Ik heb al zoveel geprobeerd dat ik het uiteindelijk niet meer snap. Als ik dan even denk 'Ooh, het is zo!' dan blijkt het toch weer niet te kloppen.. :naughty:

Fr3aK

Legacy Member
Code:
RewriteEngine On

RewriteBase /shop_new/

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# Trailing slash weghalen
RewriteRule ^(.+)/$  /$1 [R=301]

RewriteRule ^([-A-Za-z0-9]+)/([-A-Za-z0-9]+)/([-A-Za-z0-9]+)$ index.php?setlang=$1&action=$2&catid=$3 [L]
RewriteRule ^([-A-Za-z0-9]+)/([-A-Za-z0-9]+)$ index.php?setlang=$1&action=$2 [L]
RewriteRule ^([-A-Za-z0-9]+)$ index.php?setlang=$1 [L]

Code:
<link rel="stylesheet" type="text/css" href="/css/preview.css" />
<script type="text/javascript" src="/js/preview.js"></script>
<a href="/en">EN</a> 
<a href="/<?php echo $lang_sel; ?>/home">Home</a>
Je moet geen slashes plaatsen als je met <base href=""> werkt maar in dat geval zullen anchors (#top) niet meer deftig werken.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan