2013-05-27 5 views
0

요청은 간단하지만 구현 방법을 찾을 수 없습니다. 나는 아래와 같은 링크를 가지고있다 :.htaccess 파일의 규칙 다시 쓰기

httр://mysite.com/index.php?lang=EN 
httр://mysite.com/index.php?route=add&lang=EN 
httр://mysite.com/index.php?route=view&lang=EN 

등등. 내가 원하는 것은 301 리디렉션을 만들어 EN을 GB로 변경할 수 있도록하는 것입니다. 예를 들어 고객이 httр://mysite.com/index.php?route=add&lang=EN을 열면 그는 httр://mysite.com/index.php?route=add&lang=GB으로 리디렉션되어야합니다.

나는 며칠 동안 이것을 검색했지만 실제 해결책을 찾지 못했습니다. 도와주세요.

답변

0

.htaccess에서 수행해야합니까? 다음은 PHP에서 그것을하는 비교적 간단한 방법이있다 :

<? 
if ("EN" == $_GET['lang']) { 
    $params = $_GET; 
    $params['lang'] = "GB"; 
    $query_strings = array(); 
    foreach ($params as $key => $value) { 
    $query_strings[] = $key . "=" . $value; 
    } 
    header("HTTP/1.1 301 Moved Permanently"); 
    header("Location: http://www.mysite.com?" . join($query_strings, "&"); 
} 

결론은 당신이 각 쿼리 매개 변수를 분리 할 수있는 수준에이 문제를 해결하고 바로 lang 매개 변수를보고 여부를 결정하기 쉬울 수 있다는 것이다 리디렉션을 할 수 있습니다.

정규 표현식 (.htaccess에서 사용해야하는 것처럼)을 사용하면 lang 부분 만 분리하는 것이 어렵습니다. 리디렉션하고 목록을 관리하려는 언어 당 한 줄씩 필요합니다.

+0

안녕하세요. fiskeben, 정말 고마워요. 예, .htaccess를 통해이 작업을 수행하는 것이 나에게 바람직합니다. 그러나 방법을 찾지 못하면 솔루션을 사용하겠습니다. – user2416426