2012-12-25 2 views
1

지난 며칠 동안 저는 PHP 기반 다국어 웹 사이트를 만들었습니다. 나는 많은 해결책을 시도했지만 지금까지 운이 없었습니다. 내가 다국어 지원을 구현하기로 결정하고 잘 작동하기 전에
http://www.example.com/en/about
http://www.example.com/cs/o-nas
다국어 웹 사이트 php

내가이 재 작성 규칙을 사용했습니다 :

내가 내 URL의 모양을하고 싶은 방법입니다 :

RewriteBase /kittytea/ 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-zA-Z0-9_-]+)$ ?page=$1 [L] 

내 링크 는 다음과 같다 :

<a href="about"> 

누구나 다국어 지원을 추가하는 방법에 대한 아이디어가 있습니까? GET 메서드를 사용하여 URL 매개 변수를 전달하는 것에 익숙합니다.

개별 웹 사이트 섹션을로드하기 위해 간단한 PHP SWITCH 문을 사용하고 있다고 덧붙일 수 있습니다.

PS - 아주 작은 웹 사이트이므로 최고 수준의 솔루션이 필요하지 않습니다. 나는 단지 그것을 만들고 싶어 :)

고마워!

답변

1

당신은 재 작성의 일부로서이 자리 언어 코드를 포함하여 시도 할 수 있습니다 :

RewriteBase /kittytea/ 

# with language 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-z]{2})/([a-zA-Z0-9_-]+)$ ?lang=$1&page=$2 [L] 

# original, without language 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-zA-Z0-9_-]+)$ ?page=$1 [L] 

귀하의 PHP 스크립트는 다음 lang 매개 변수에 2 자리 언어 코드를 확인하고 해당 내용을 반환해야합니다. ?

<a href="en/about"> 
+0

한 경우에도 하나의 규칙으로 그들을 결합 할 수있는'한다 RewriteRule^(([AZ] {2}) /() [A-zA- :

그런 다음에 당신의 연결을 변경해야 할 것 Z0-9 _-] +) $? lang = $ 2 & page = $ 3 [L]' – Gerben

+0

고마워! 그러나 문제없이 작동하는 것으로 보입니다. CSS와 이미지로드가 중단되었습니다. URL에있는 인공 "/ en"디렉토리와 관련이 있다고 생각합니다. 나는 이것에 대한 해결책을 찾아 보았지만 그들 중 누구도 일하지 않았다. –

+0

@ OndraMatoušek 추가 경로 때문에 css/images/scripts에 절대 URL을 사용하거나 페이지의 헤더에 (또는 해야한다). –