programing

htaccess의 [QSA, L]에서 L은 무엇입니까?

goodcopy 2021. 1. 17. 11:54
반응형

htaccess의 [QSA, L]에서 L은 무엇입니까?


QSA는 원래 URL과 함께 전달 된 쿼리 문자열이있는 경우 다시 쓰기에 추가됨을 의미합니다 (olle? p = 1은 index.php? url = olle & p = 1로 다시 작성됩니다.

L은 규칙이 일치하면이 규칙 아래의 RewriteRules를 더 이상 처리하지 않음을 의미합니다.

안녕하세요, L의 사용을 설명하는 쉬운 예는 무엇입니까? 위의 설명을 이해할 수없는 것 같습니다. 어떤 도움이라도 대단히 감사하겠습니다. 감사.


QSA플래그 수단은 기존의 쿼리 문자열을 추가하는 URI가 다시 작성되었습니다. 예:

URL =http://example.com/foo/bar?q=blah

규칙:

RewriteRule ^foo/(.*)$ /index.php?b=$1

결과 =/index.php?b=bar

어떻게 q=blah사라 졌는지 주목하십시오 . 기존 쿼리 문자열이 규칙의 대상 (b = $ 1)에있는 문자열 대신 삭제되기 때문입니다. 이제 QSA플래그 를 포함하면 :

RewriteRule ^foo/(.*)$ /index.php?b=$1 [QSA]

결과는 다음과 같습니다./index.php?b=bar&q=blah


L플래그는 단순히 따르는 것이 어떤 규칙을 적용 중지하는 것을 의미합니다. 동일한 URL이 http://example.com/foo/bar?q=blah주어지고 규칙이 주어집니다.

RewriteRule ^foo - 

RewriteCond %{REQUEST_URI} !^/bar.php
RewriteRule ^(.*)$ /bar.php?z=$1 

첫 번째 규칙이 적용되고 URI가 변경되지 않고 -대상을 통해 전달됩니다 . 그런 다음 다시 쓰기 엔진이 다음 규칙을 처리하고 URI가 /bar.php?z=foo/bar. L끝에 를 추가하면 어떻게 되나요?

RewriteRule ^foo - [L]

RewriteCond %{REQUEST_URI} !^/bar.php
RewriteRule ^(.*)$ /bar.php?z=$1 

URL http://example.com/foo/bar은 첫 번째 규칙에서 변경되지 않고 전달 된 다음 플래그 때문에 중지됩니다L . URL이 http://example.com/something/else다음과 같으면 첫 번째 규칙이 일치하지 않고 두 번째 규칙이 적용되고 URI를 다음과 같이 다시 작성합니다./bar.php?z=something/else

재 작성 엔진은 URI 변경이 중지 될 때까지 모든 규칙을 반복 하므로 L플래그는 반복을 방지 하지 않으며 현재 반복에 추가 규칙 만 적용 되지 않습니다 .


.htaccess 플래그 목록

  • C (다음 규칙과 연결됨)
  • CO = cookie (지정된 쿠키 설정)
  • E = var : value (환경 변수 var을 값으로 설정)
  • F (금지됨-403 헤더를 사용자에게 보냅니다.)
  • G (사라짐-더 이상 존재하지 않음)
  • H = handler (세트 핸들러)
  • L (마지막-처리 규칙 중지)

마지막 규칙 : 이전 지시문이 처리 된 후 다시 쓰기를 중지하도록 서버에 지시합니다.

  • N (다음-규칙 처리 계속)
  • NC (대소 문자 구분 안함)
  • NE (출력에서 특수 URL 문자를 이스케이프하지 않음)
  • NS (요청이 하위 요청 인 경우이 규칙 무시)
  • P (프록시-즉, 아파치는 대체 섹션에 지정된 원격 콘텐츠를 가져 와서 반환해야 함)
  • PT (통과-추가 핸들러 (예 : mod_alias)로 URL을 처리 할 때 사용)
  • R (새 URL 로의 임시 리디렉션)
  • R = 301 (새 URL로 영구 리디렉션)
  • QSA (요청에서 대체 URL로 쿼리 문자열 추가)
  • S = x (다음 x 규칙 건너 뛰기)
  • T = mime-type (강제 지정된 MIME 유형)

재 작성 규칙의 끝에 플래그가 추가되어 Apache에 규칙을 해석하고 처리하는 방법을 알려줍니다. 그들은 아파치에게 규칙을 대소 문자를 구분하지 않는 것으로 처리하도록 지시하고, 현재 규칙이 일치하는 경우 처리를 중지하거나 다양한 다른 옵션을 지정하는 데 사용할 수 있습니다. 쉼표로 구분되며 대괄호 안에 포함됩니다.

참조 URL : https://stackoverflow.com/questions/16468098/what-is-l-in-qsa-l-in-htaccess

반응형