2011-12-28 2 views
0

나는 이미 많은 시간을 보냈고 도움을받을 수 있다고 생각합니다. 그래서 로컬 젠드 프로젝트가 http://MY_URL.lh에 있습니다.Zend url을 BASE_URL/BASE_URL으로 다시 작성 하시겠습니까? lang = ko

나는이 htaccess로 파일이 있습니다

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
# RewriteRule ^.*$ /index.php [NC,L] 
RewriteRule !\.(js|ico|gif|jpg|png|css|wfs|csv)$ index.php 

을 그리고 난이 재 작성하려면 : 내 규칙을 추가하기 위해 이미 tryed 한

htttp://MY_URL.lh/?lang=en 

이에

htttp://MY_URL.lh/en 

,
RewriteRule /^([a-z]{2})$ /?lang=$1 [R] 

RewriteRule ^.*$ - [NC,L] 

전에

하지만 더 이상 젠드 라우팅 내가 내 규칙에 플래그 [C]를 추가하지만, 원하는 동작은 아직 행방 불명 경우를 제외하고 작동하지 않습니다.

또한 [R = 301] 플래그로 시도했습니다.

젠드 프로젝트에서 htaccess 재 작성 규칙을 만드는 것이 왜 그렇게 어려운지 잘 알고 있습니다.

답장을 보내 주셔서 감사합니다.

답변

0

다른 규칙이 바로 RewriteRule ^.*$ - [NC,L] 전에 추가하면 RewriteEngine On

RewriteRule ^([a-z]{2})$ /?lang=$1 [R=301,L] 

가 모든 요청 처리를 중지라고이 규칙은, 인, 모든 시간을 실행 도착 직후, 즉 전에이 규칙을 추가 시도 왜 아무 것도 작동하지 않습니다.

편집 : 당신이 리디렉션이 무엇을 할 것 인 URL에있는 주소를 변경하지 않으려면

, 그럼 난 당신이 너무이 후 처리 규칙을 계속 할 것으로 추정 PHP 애플리케이션 있도록 lang param을 선택할 수 있습니다. 이 경우 규칙을 그대로두고 두 플래그를 제거하고 다른 쿼리 문자열 매개 변수가있는 경우에 대비하여 QSA 플래그를 추가하십시오.

RewriteRule ^([a-z]{2})$ /?lang=$1 [QSA] 
+0

고맙습니다! 그것은 효과가 있지만 브라우저의 URL 표시 줄에서 주소를 변경, 그것을 변경하지 않고 할 수있는 방법이 있습니까? –

+0

@ SerbuFlorin-Adrian 위 편집을 참조하십시오. –

+0

URL 주소가 URL 주소 표시 줄에서 계속 변경됩니다. –