【发布时间】:2016-06-25 03:07:59
【问题描述】:
我有这样的功能
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 它的工作时,问题是当我点击其他页面时,如 myweb/pages/about-us 或其他页面,仅显示 home.php
如何解决?
我想在我点击 myweb/pages/about-us 的地方变成 myweb/pages/about-us/en 或 myweb/pages/about-us/id
感谢您的回答,对不起我的英语不好:D
【问题讨论】:
标签: php .htaccess mod-rewrite url-rewriting