2011-11-15 3 views
0

나는이 규칙이 permentlyently http://example.com/en/something to http://example.com/something 지금 나는 두 링크가 separatly 일했습니다.RewriteRule의 젠드 구성 기본값에서

편집 :

SetEnv APPLICATION_ENV offline 

RewriteEngine On 
Options +FollowSymlinks 

RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 

RewriteCond %{REQUEST_URI} !^/en/ 
RewriteRule ^.*$ index.php [NC,L] 

RewriteRule ^en/(.*) /$1 [L,R] 

이 사이트 루트에 직접 기본 언어 URL을 리디렉션합니다! 많은 감사. 그것은 다시 작성됩니다 bceause RewriteRule ^.*$ index.php [NC,L]

$HTTP["url"] != "^/en/" { 
    url.rewrite-once = (
     "^/.*" => "index.php?/$1", 
    ) 
} 
url.redirect = (
    "^/en/.*" => "/$1", 
) 

답변

1

그것을 당신이 추가 한 규칙에 도달하지 :

는 lighttpd를위한있다.

# you regular stuff 
RewriteEngine On 
Options +FollowSymlinks 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 

# Add this condition 
RewriteCond %{REQUEST_URI} !^/en/ 
RewriteRule ^.*$ index.php [NC,L] 

# Now you can rewrite /en 
RewriteRule ^en/(.*) $1 [L,R] 

편집 : example.com/en/something 다음 index.php에 다시, example.com/something로 리디렉션됩니다 /en/로 시작하는 요청의 index.php를 재 작성되지 않도록 당신은 조건을 추가해야합니다.

+0

그것은 효과가있는 것 같지만 내 페이지에서는 작동하지 않습니다. 모든 리디렉션 (php/http)을 어떻게 확인할 수 있습니까? – iegik

+0

헤더 : HTTP 요청 상태 : 200 (OK) 이름 \t 값 날짜 \t 2011년 11월 15일 (화) 그리니치 표준시 09시 00분 19초 X-구동 -에 의해 \t PHP/5.2.11 연결 \t 연결 유지 콘텐츠 - 길이 에서 Pragma \t 노 캐시 서버 \t 아파치/2.2.21 (Win32에서) PHP/5.2.11 콘텐츠 유형 \t text/html과 캐시 제어 \t없는 점, 노 캐시해야-재 검증 , post-check = 0, pre-check = 0 Keep-Alive \t timeout = 5 , max = 99 Expires \t Thu, 1981 년 11 월 19 일 08:52:00 GMT – iegik

+0

리디렉션하려는 경우 마지막 규칙에서 대괄호를'[L, R]'로 변경하지만 브라우저가 리디렉션되면 ,'RewriteRule ^. * $ index.php [NC, L]'규칙이 적용됩니다. 따라서 example.com/en/something이 example.com/something으로 리디렉션 된 다음 index.php로 다시 작성됩니다. –