2013-03-30 52 views
0

我想在我的网站上使用清洁URL htaccess的如何改变语言的网址清理URL与htaccess的

这对SEO重要的网址,我怎样才能从

http://www.mysite.com/?do=change&lang=en to http://www.mysite.com/en/ 

文件功能改变我的网址.PHP

include './lang/choose.lang.php'; 

function Browser_Lang(){ 
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'],0,2); 
switch ($lang){ 
    case 'ar': // Arabic 
     return 'ar'; 
     break; 
    default: // English for other languages 
     return 'en'; 
     break; 
} 
} 

文件choose.lang.php

if($_REQUEST['do'] == 'change'){ 
$lang = Secure($_GET['lang']); 
Set_Cookie('language',$lang,time()+(3600*24*30*12)); 
} 
if(isset($_COOKIE['language'])){ 
    $lang = Read_Cookie('language'); 
}else if(!isset($_COOKIE['language']) && isset($_SERVER['REMOTE_ADDR'])){ 
    $lang = Browser_Lang(); 
}else{ 
    $lang = 'en'; 
} 

switch ($lang){ 
    case 'ar': // Arabic 
     include 'ar.lang.php'; 
     break; 
    default: // English for other languages 
     include 'en.lang.php'; 
     break; 
} 

回答

1

您想知道.htaccess中的重写规则吗? 这可能是某事像这样:

RewriteRule ^(en|ar)/?$ /?do=change&lang=$1 [L] 
0

重写规则:

RewriteEngine On 
RewriteRule ^([^/]*)/$ /?do=change&lang=$1 [L] 
0

http://www.mysite.com/?do=change&lang=en重定向到http://www.mysite.com/en/,你必须捕捉查询字符串参数langRewriteCond并插入到RewriteRule

RewriteCond %{QUERY_STRING} lang=(.+) 
RewriteRule ^$ /%1/ [R,L]