htaccess의 RewriteCond 범위

tru7

버전이 지정된 파일 이름이있는 존재하지 않는 파일을 현재 버전으로 리디렉션하고 싶습니다. 요청 된 파일 이름의 패턴에 따라 두 개의 대상 파일이 있습니다.

예를 들어 현재 파일은 setup-win-3-1-0.exe 입니다. setup-win-2-7-1.exe (존재하지 않음)에 대한 요청 은 이전 파일로 리디렉션됩니다. (그리고 setup-mac-2-7-1.dmg는 setup-mac-3-1-0.dmg로 이동합니다)

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^setup-win-[^.]+\.exe$ setup-win-%{ENV:DOWNLWIN}.exe [L,R=301,NC]
RewriteRule ^setup-mac-[^.]+\.dmg$ setup-mac-%{ENV:DOWNLMAC}.dmg [L,R=301,NC]

(ENV : DOWNL은 이전에 설정되었으며 명확성을 위해 생략)

나는 웹을 검색하고 몇 가지 모순을 발견했습니다 .RewriteCond는 다음 RewriteRule에만 적용되고 마지막 플래그가있는 RweriteRule을 찾을 때까지 적용되는 다른 곳에서만 적용되는 것을 보았습니다.

  • RewriteCond가 두 줄에 모두 적용됩니까?
  • 그렇다면 언제 RewriteCond를 중지합니까? (다음에 더 많은 규칙이있는 경우 여전히 Cond의 범위에 포함됩니까?)
아누 바바

RewriteCond가 두 줄에 모두 적용됩니까?

대답은 아니오 입니다. RewriteCond가장 가까운 RewriteRule. RewriteRule지시문을 사용하여 정의 된 둘 이상의 규칙에는 적용되지 않습니다 .

대체 접근 방식 :RewriteCond 모든 규칙 이전에 계속 해서 원하지 않는 경우 RewriteCond. 아래 예를 고려하십시오.

RewriteEngine 

# skip all the rules *below* of comdition is met
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^setup-win-[^.]+\.exe$ setup-win-%{ENV:DOWNLWIN}.exe [L,R=301,NC]

RewriteRule ^setup-mac-[^.]+\.dmg$ setup-mac-%{ENV:DOWNLMAC}.dmg [L,R=301,NC]

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

.htaccess RewriteRule and RewriteCond

분류에서Dev

.htaccess RewriteRule 및 RewriteCond

분류에서Dev

이름 위치에 대한 .htaccess RewriteCond 필터

분류에서Dev

Apache-RewriteCond의 .htaccess 정규식 대체

분류에서Dev

Aapche2 htaccess RewriteCond with ErrorDocument 404

분류에서Dev

Aapche2 htaccess RewriteCond with ErrorDocument 404

분류에서Dev

RewriteCond : 내 .htaccess의 잘못된 플래그 구분 기호

분류에서Dev

.htaccess 파일의 쿼리 매개 변수에 대한 RewriteCond

분류에서Dev

범위 목록의 범위

분류에서Dev

htaccess에서 여러 RewriteCond 부정

분류에서Dev

여러 도메인에서 HTACCESS RewriteCond

분류에서Dev

특정 페이지에 대한 .htaccess RewriteCond

분류에서Dev

HTTPS가 아닌 경우 htaccess RewriteCond 및 RewriteRule

분류에서Dev

TypeScript의 'This'범위

분류에서Dev

RewriteCond % {REMOTE_ADDR} [IPv4]가 IP 범위 포착을 방지합니까?

분류에서Dev

.htaccess 제한 IP 범위

분류에서Dev

x ++의 strfmt 범위

분류에서Dev

Dart : querySelector의 범위

분류에서Dev

Android의 Dagger 범위

분류에서Dev

JavaScript / jQuery의 범위

분류에서Dev

JavaScript / jQuery의 범위

분류에서Dev

Stateless Bean의 범위

분류에서Dev

범위의 변수

분류에서Dev

Android : onActivityResult ()의 범위?

분류에서Dev

R의 ngram 범위

분류에서Dev

MarkLogic의 "범위 지정"범위 쿼리?

분류에서Dev

범위의 PHP 검사 범위

분류에서Dev

PHP 스위치의 범위

분류에서Dev

.htaccess가 RewriteCond를 무시하고 있습니다.