mod_rewrite rewrites가 다시 쓰기 규칙을 통해 두 번째 실행을 호출합니까?

StackOverflow https://stackoverflow.com/questions/229231

  •  04-07-2019
  •  | 
  •  

문제

Mod_rewrite에 의해 재 작문이 실행되면 새로 생성 된 요청에 대해 모든 mod_rewrite 규칙이 다시 실행됩니까? 구체적으로 다음 예에서는 루프가 발생합니까?

RewriteCond Host:  (?:www\.)?mysite\.com
RewriteRule ^(.*)$ $1 [QSA,L]
도움이 되었습니까?

해결책

귀하의 경우, 그것은 어느 쪽이든 루프를하지 않을 것입니다. "L"스위치가 켜져있어 특정 규칙을 마지막 규칙으로 수정합니다.

또한 "N"또는 "NS"스위치를 사용하여 다음 반복을 명시 적으로 강제해야합니다. 그렇지 않으면 규칙 파일을 통해 이동하여 일치하는 마지막 규칙으로 중지됩니다. 문서에서 :

n (다음 반복)

엔진이 규칙의 대상을 수정하고 처음부터 확인하는 규칙을 다시 시작하도록 강제로 재 작성하십시오 (모든 수정은 저장됨). 재시작 횟수는 Returlimit 지시문에 지정된 값으로 제한됩니다. 이 숫자를 초과하면 n 플래그는 단순히 무시됩니다.

NS (동일한 규칙의 다음 반복)

N 플래그와 같이 작동하지만 동일한 규칙에서 규칙 처리를 다시 시작합니다 (즉, 규칙 응용 프로그램의 강제 반복). 단일 규칙 반복의 최대 수는 Returlimit 지시문에 의해 제공됩니다. 그러나 다수의 단일 규칙 반복은 전역의 반복 수를 계산하지 않습니다 (즉, N 플래그에 의해 야기되는 다수의 반복에 대한 반복 한계는 NS에 의해 야기 된 다수의 반복과 무관하다).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top