2016-07-02 3 views
2

다음 문제 : 하위 폴더에 2 개의 html 사이트가 있습니다. 한 사이트는 영어로되어 있고 한 사이트는 독일어로되어 있습니다. 나는 사용자의 언어를 기반으로 올바른 사이트로 리디렉션 htaccess로 재 작성 규칙을 사용.htaccess 언어 재 작성/수락

RewriteCond %{HTTP:Accept-Language} ^de [NC] 
RewriteRule ^$ http://example.com/ [L,R=301] 

이 영어 버전의 하위 폴더에 htaccess로의 코드입니다. 문제는 독일어 사용자가 페이지의 영어 버전을 보려고 할 때 항상 독일어 버전으로 리디렉션 될 때 발생합니다.

첫 방문시 사용자를 리디렉션 할 수있는 방법이 있습니까?하지만 독일어 페이지의 English 하이퍼 링크를 클릭하면 독일어 사이트로 다시 리디렉션되지 않고 영어 버전을 볼 수 있습니까?

모드 재 작성이 가능하지만 한 번만 리디렉션 할 조건이 필요하며 사용자가 특정 하이퍼 링크를 클릭하면 다시 리디렉션되지 않습니까?

+4

그런 다음 .htaccess 파일에서 정의하는 대신 코드를 만들어야합니다. –

+0

어떤 코드 유형입니까? – Max

답변

1

두 개의 하위 디렉터가있는 경우 (예 : deen 인 경우 Accept-Language 헤더를 기반으로 리디렉션 대신 다시 작성할 수 있습니다. 그러나 브라우저가 언어 접 두부를 포함하는 명시 적 경로를 요청하면 경로가 재 지정되지 않습니다.

당신이 시도 할 수 말한다 표시됩니다 Accept-Language에 따라 표시됩니다 (테스트되지 않은이!)

RewriteRule ^en/ - [L] 
RewriteRule ^de/ - [L] 

RewriteCond %{HTTP:Accept-Language} ^de [NC] 
RewriteRule^/de%{REQUEST_URI} [L] 

RewriteCond %{HTTP:Accept-Language} ^en [NC] 
RewriteRule^/en%{REQUEST_URI} [L] 

규칙

다른 접근법은 사용자가 언어를 결정할 때 쿠키를 설정하고이 쿠키에 따라 페이지를 전달하는 것입니다.