2011-12-25 2 views
0

Apache 서버용 mod_rewrite를 가져옵니다. 내가이 샘플 모두의 RewriteRules 필요합니까 왜 내가 완전히 이해하지 않습니다두 규칙 집합이 모두 필요한 이유는 무엇입니까?

<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteRule ^$ public/ [L] 
    RewriteRule (.*) public/$1 [L] 
</IfModule> 

원래이 DIY MVC 튜토리얼에서 발견, 그것은 ^$처럼 보인다 (.*) 같은 일을 의미한다. 그리고 두 번째가 발사되지 않아야하기 때문에 왜 나는 두 개의 [L] ast 깃발이 필요합니까? 저는 작업 솔루션을 복사하는 대신 모든 내부 메커니즘을 더 깊이 이해하려고합니다.

답변

1

아니, ^$.*이 같은 일을 의미하지 않는다 : - 빈 입력을 포함하여 첫 번째 일치 빈 입력, 두 번째는 아무것도 일치합니다. 두 번째 규칙으로 충분합니다.

여기 [L] 왜 거기에 관해서는, 빈 요청을 고려하지 않고 [L] :

  • 첫 번째 규칙을 public/에 요청을 켜집니다;
  • 두 번째 트리거가 발생하고 public/public/public/으로 설정합니다.
+0

고맙습니다!^(. *) $ 또는 just (. *) –

+0

동일합니다. 둘 다 정확히 똑같을 것입니다. 거기에 앵커와 귀찮게하지 마십시오;) – fge

관련 문제