2016-06-24 4 views
1

я функция как этоткак переписать ссылку с .htaccess

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] 

когда я открываю myweb с идентификатором языка по умолчанию и выбираю op (например, myweb/pages/about-us или other), то есть просто показать home.php

Как исправить это?

я хочу, где я нажимаю Myweb/страниц/о-мы стали Myweb/страницы/о-нас/EN или Myweb/страницы/о-нас/ID

спасибо за ответ и извините за мой плохой english: D

ответ

0

Вы должны удалить несколько символов (/([^/]*)) из одного из правил перезаписи 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] 
+0

спасибо за ответ @cnst, я это делать, а не работать , когда я иду к Myweb/страниц/о-мы, которые до сих пор показывают home.php и я стараюсь, чтобы выбрать опцию еп, страница по-прежнему показать home.php и ilnk стать mysite/pages/en – dem4nk

+0

@ dem4nk, как это не работает? – cnst

+0

Извините, я отредактировал свой комментарий – dem4nk

Смежные вопросы