我的功能像这样
function get_lang($url){
$lang = explode("/", $url);
$bahasa = array();
$bahasa['url_id'] = '';
$bahasa['url_en'] = '';
if(in_array('id', $lang)){
$bahasa['lang'] = "id";
$bahasa['url_id'] = $url;
$key = array_search('id', $lang);
$lang[$key] = "en";
$i=0;
foreach($lang as $link){
if($i==0){
$bahasa['url_en'] .= $link;
}else{
$bahasa['url_en'] .= '/'.$link;
}
$i++;
}
return $bahasa;
}
if(in_array('en', $lang)){
$bahasa['lang'] = "en";
$bahasa['url_en'] = $url;
$key = array_search('en', $lang);
$lang[$key] = "id";
$i=0;
foreach($lang as $link){
if($i==0){
$bahasa['url_id'] .= $link;
}else{
$bahasa['url_id'] .= '/'.$link;
}
$i++;
}
return $bahasa;
}
return $bahasa;
}
$language = get_lang($_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']);
和我的home.php
<form name="form1" method="post" action="?lang=">
<select name="menu1" onChange="MM_jumpMenu('parent',this,0)">
<?php
if(($language['lang'] == "id") || (empty($language['lang']))) {
?>
<option value="id" selected>ID</option>
<option value="en">EN</option>
<?php
} else {
?>
<option value="id">ID</option>
<option value="en" selected>EN</option>
<?php
} // end else
?>
</select>
和我的.htaccess
RewriteEngine on
RewriteRule ^([^/]*)$ index.php?mod=home [L]
RewriteRule ^pages/([^/]*)/([^/]*)$ index.php?mod=pages&idp=$1 [L]
RewriteRule ^pages/([^/]*)/([^/]*)$ index.php?mod=pages&idp=$1&page=$2 [L]
RewriteRule ^category/([^/]*)$ index.php?mod=category&idc=$1 [L]
RewriteRule ^category/([^/]*)/([^/]*)$ index.php?mod=category&idc=$1&page=$2 [L]
RewriteRule ^detailpost/([^/]*)$ index.php?mod=detailpost&id=$1 [L]
RewriteRule ^detailpost/([^/]*)/([^/]*)$ index.php?mod=detailpost&id=$1&page=$2 [L]
RewriteRule ^gallery$ index.php?mod=gallery [L]
RewriteRule ^gallery/([^/]*)/([^/]*)$ index.php?mod=gallery&page=$2 [L]
RewriteRule ^contact$ index.php?mod=contact [L]
RewriteRule ^search-result/$ index.php?mod=searchresult [L]
RewriteRule ^search-result/([^/]*)$ index.php?mod=searchresult&search=$1 [L]
RewriteRule ^search-result/([^/]*)/([^/]*)$ index.php?mod=searchresult&search=$1&page=$2 [L]
RewriteRule ^login$ index.php?mod=login [L]
RewriteRule ^register$ index.php?mod=register [L]
RewriteRule ^maintenance$ maintenance.php [L]
当我使用默认语言ID打开myWeb并选择"选项ID/en ent Work"时,问题是当我单击其他页面(例如myweb/pegages/of-us或其他)时,这就是显示Home.php
如何修复它?
我想点击myweb/pegages/about-us成为myweb/pages/about-us/en eN或myweb/pages/about-us/id
感谢您的回答,对不起我的英语不好:D
您必须从pages
重写规则之一中删除一些字符(/([^/]*)
),类似于所有其他重写规则的方式。
RewriteEngine on
RewriteRule ^([^/]*)$ index.php?mod=home [L]
-RewriteRule ^pages/([^/]*)/([^/]*)$ index.php?mod=pages&idp=$1 [L]
+RewriteRule ^pages/([^/]*)$ index.php?mod=pages&idp=$1 [L]
RewriteRule ^pages/([^/]*)/([^/]*)$ index.php?mod=pages&idp=$1&page=$2 [L]
RewriteRule ^category/([^/]*)$ index.php?mod=category&idc=$1 [L]
RewriteRule ^category/([^/]*)/([^/]*)$ index.php?mod=category&idc=$1&page=$2 [L]