mod_rewrite [L] 플래그가 예상대로 작동하지 않습니까?

mod_rewrite [L] 플래그가 예상대로 작동하지 않습니까?

[L] 플래그가 "이 규칙은 이 http 요청에 대해 처리되는 마지막 규칙이어야 합니다."를 나타내는 것으로 생각했습니다.

그러나 다음과 같은 두 가지 규칙이 있는 경우:

RewriteRule ^test$ php/test.php [L]
RewriteRule (.*) error.php

항상 일어나는 일은 다음과 같은 요청입니다.http://localhost/testerror.php로 이동하세요.~ 아니다예상대로 test.php에 [L]을 넣었기 때문입니다. 거기에서 두 번째 규칙을 주석 처리하면 다음을 요청합니다.http://localhost/test예상대로 test.php로 이동하십시오.

제가 실제로 하려는 것은 mod_rewrite로 404 오류를 잡는 것입니다. 내가 하려는 일은 명백히 잘못된 것일 수도 있습니다. 하지만 여전히 포괄 규칙이 왜 활성화되어 있는지 알고 싶습니다.내가 그랬어규칙 뒤에 [L]을 붙입니다 ^test.

다음에서 큰 목록이 보입니다.여기여기서 서버 관리자는 인식된 디렉터리로 시작하는 여러 경로를 나열하지만 저는 단순히 멋진 포괄적인 규칙을 사용하여 이 작업을 피하고 싶었습니다.

답변1

규칙으로 인해 클라이언트 리디렉션이 발생하는 경우 클라이언트가 리디렉션 요청을 하면 규칙 목록이 맨 위에서 다시 입력됩니다.

관련 정보