2011-08-24 5 views
0

J'ai un problème avec la réécriture du mod et je n'ai trouvé aucune solution ici. Voici le problème:Problème de réécriture du site Web multilingue

Je site avec deux langues et URL mod devrait ressembler à ceci:

/eng/contact 
/srp/kontakt 

/eng/news 
/srp/vesti 

/eng/event 
/srp/najava 

règle de réécriture de la mine ne fonctionne pas parce que j'ai dans la situation .htaccess comme ceci:

# news 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ news.php?lang=$1&pagename=$2 [NC,L] 

# contact 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ contact.php?lang=$1&pagename=$2 [NC,L] 

# event 
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ event.php?lang=$1&pagename=$2 [NC,L] 

Ma question est de savoir comment réécrire les pages dans les exemples ci-dessus?

Répondre

2

J'utiliser:

RewriteRule ^([^/]+)/([^/]+)/*$ index.php?lang=$1&pagename=$2&%{QUERY_STRING} 

puis acheminer le flux de PHP à partir index.php à news.php/contact.php etc. en utilisant un certain switch-case-instruction include simple:

switch ($_GET['pagename']) 
{ 
    case 'news': 
     require_once 'news.php'; 
     break; 
    ... 
    ... 
} 

Cela vous aidera également à développer d'autres fonctionnalités liées au routage simplifiant le fichier .htaccess. Ceci permet également de rechercher facilement les noms de sous-pages natifs de sous-pages comme "en/contact" mais "pl/kontakt" etc.

J'utilise cette approche sur presque tous mes sites (par exemple http://www.calculla.com/en/ascii2hex et http://www.calculla.com/pl/ascii2hex).

+0

Merci. Cela a été utile, mais j'ai une situation un peu plus complexe: www.website.com/eng/blog/category/page/1 www.website.com/srp/blog/category/page/1 Et cela ne fonctionnera pas pour cette situation. – Siblja