2014-11-16 1 views
0

4 개 언어가 포함 된 웹 사이트의 다국어 스크립트를 작성하고 있습니다.다국어 스크립트가 요청한 페이지에서 제대로 리디렉션되지 않습니다.

http://www.example.com/index.php?lang=es 
http://www.example.com/index.php?lang=de 
and so on... 

나는이 같은 htaccess로 파일을 다시 한 SEO 친화적 인 URL이 할 필요성을 고려 : 아래 그림과 같이
스크립트는 동적 URL을 생성

정적 표시하기 위해
RewriteEngine On 
    RewriteRule ^es/([^/]*)\.html$ /index.php?lang=$1 [L] 

URL이 : http://www.example.com/es/es.html 등 ... 나는 또한 PHP 코드를 수정
지금까지 너무 좋아

은 ... 다음과 같이

기존 코드와 새로운 코드 :

내가 링크는 원하는 페이지에 리디렉션 플래그 중 하나 cklick 경우
foreach($langArray as $language){ 
echo "<a href='?lang=". $language ."'><img src='trad/flag_". 
$language .".png' /></a> "; 
} 


$langArray = $translate->getAllLanguages(); 
foreach($langArray as language){ 
echo "<a href='".$language .'/'.$language.".html'><img src='trad/flag_". 
$language .".png' /></a> "; 
$langArray[$i] .".png' /></a> "; 
} 

. 예를 들어
는 : www.example.com/es/de/de.html 대신 :

www.example.com/es/es.html 

내가 다른 플래그 CLIK 경우, 독일어 istance를 들어, 페이지가 다음 페이지에 나를 리디렉션 www.example.com/de/de.html

내가 뭘 잘못하고 있니?

답변

0

루트 상대 URL을 사용하십시오. 이 URL은 /으로 시작합니다.

예는 href

<a href="http://www.example.com/de/de.html"> 
0

에서

<a href="/de/de.html">

또는 도메인을 사용 그것은 고전적인 오류입니다. 상대 링크를 작성합니다 (/으로 시작하지 않음). 브라우저는 상대 URL을 현재 페이지 URL로 해석합니다. 즉시 /에서 최상위 페이지 (에있는 경우, 모든 괜찮지 만, 곧 현재의 URL 깊은 (한 단계 이상) 당신이 얻을 그대로 :

/old_url_begin/new_url 

당신은 절대 URL을 사용해야은 :

echo "<a href='/".$language .'/'.$language.".html'> 
+0

안녕 방탄복, 나는 또한 절대 URL을 사용하지만, 나는 같은 결과를 얻을 – Daniel

관련 문제