2013-07-01 1 views
6

.htaccess 파일에 SetEnvIf을 사용해야합니다.SetEnvIf에서 여러 조건 추가

또한 여러 조건을 충족해야하고 필요한 URL을 표시해야합니다.

SetEnvIf Remote_Host "^" press_flag=0 
SetEnvIf Request_URI '/press/$' press_flag=1 
SetEnvIf Cookie 'language\_uiAAAenglishBBB' press_flag=press_flag+1 
SetEnvIf press_flag 2 Request_URI='Remote_Host/eng/test.html' 

설명 : 첫 번째 줄에서

  1. , 내가 변수 press_flag0에 설정하고

    여기 내 코드입니다.

  2. 두 번째 줄에서 URL이으로 끝나는 지 확인합니다 : /press/, 참이면 'press_flag'을 1으로 설정합니다. press_flag 값이 2 인 경우, 그때 1.
  3. 마지막 라인으로 press_flag 값을 증가 true의 경우 쿠키, language\_uiAAAenglishBBB 텍스트와 일치하는 경우
  4. 세 번째 줄, 내가 확인, 그때 내가 따라 HTTP_HOST을 설정 확인합니다.

그러나 브라우저에서 URL/press/을 열면 리디렉션되지 않습니다.

이 코드를 디버그하고 수정하는 데 도움을주십시오.

감사합니다.

+0

두 번째 줄은 HTTP_HOST'은 도메인 이름입니다 URL의 _path_ 세그먼트와는 아무 상관이 없다', 이해가되지 않습니다. 그리고 어디서나 리디렉션하는 것을 보지 못합니다. – CBroe

+0

@CBroe : 좋습니다. 수정 해줘서 고마워. 그래서, * HTTP_HOST *를 * HOST *로 대체해야합니까? –

+1

아니요, 'HOST'라는 환경 변수가 없습니다. 존재할 경우 HOST는 여전히 "경로"를 의미하지 않습니다. – CBroe

답변

1

SetEnvIf으로 리디렉션 할 수 있다고 생각하지 않습니다. 대신 mod_rewrite를 사용해야합니다

RewriteCond %{REQUEST_URI} =/press/ 
RewriteCond %{HTTP_COOKIE} \blanguage=english\b 
RewriteRule .* /eng/test.html [R] 
  1. 확인을 쿠키가 특정 값으로 설정되어있는 경우/프레스/
  2. 확인을 요청합니다.
  3. 리디렉션 규칙