Ik heb een stukje code om van taal te switchen op mijn site. Dat werkt prima behalve op dynamische pagina's. Als ik bijvoorbeeld de taal aanpas op de index.php dan onthoud hij dat overal maar ik kan de taal alleen aanpassen op index.php contact.php en andere vaste paginas.
Als ik de taal wil aanpassen op bijvoorbeeld service-naam.html (in werkelijkheid content.php op de server) dan gebeurd er niets. Hij blijft altijd op de taal die al gekozen is op een niet dynamische pagina.
Waar kan dat aan liggen?
Hier het stuk waarmee je de taal kiest:
<?
$actual_link = 'http://' . $_SERVER['HTTP_HOST'] . strtok($_SERVER['REQUEST_URI'], '?');
<a href="<? echo $actual_link; ?>?lang=en" class="btn-selector">EN</a>
<ul>
<li class="active"><a href="<? echo $actual_link; ?>?lang=en">EN</a></li>
<li><a href="<? echo $actual_link; ?>?lang=fr">FR</a></li>
<li><a href="<? echo $actual_link; ?>?lang=nl">NL</a></li>
</ul>
?>
En dit staat bovenaan mijn connection file:
<?
session_start();
if ($_GET['lang'] != '') {
$_SESSION['lang'] = $_GET['lang'];
} else if ($_SESSION['lang'] == '') {
$_SESSION['lang'] = 'nl';
}
?>
De urls van de dynamische paginas kloppen ook gewoon. Het taal switch linkje gaat hiernaartoe bij bijvoorbeeld over ons: http://website.com/over-ons.html?lang=fr in plaats van http://website.com/content.php?lang=fr
Hier nog een stuk van mijn htaccess mocht dat het iets duidelijker maken:
<?
DirectoryIndex
RewriteEngine on
#Indexes uitzetten
Options -Indexes
#Cross site access toestaan
Header set Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
#CMS rewrite
RewriteRule ^cms/$ /cms/administrator [L]
#Website naam
DirectoryIndex index.php
RewriteRule ^(.*).html content.php?alias=$1 [L]
?>
3.239 views