나는 다른 문자열로 시작하지 않는 문자열에만 일치하는 regex
을 시도하고 있습니다. 내가 아는 한에서 some 다른 questions 여기에 스택 오버플로에 나는 부정적인 look-ahead 단언을 사용해야한다. 그러나 어떤 이유로 그것은 효과가없는 것 같습니다. 다음 세 가지 문자열을 고려 : 마지막 문자열이 excludepath/
로 시작하기 때문에문자열로 시작하지 않는 문자열과 일치합니다.
/match.jpg
match.png
excludedpath/no-match.gif
내가, 첫 번째 두 문자열을 일치에 내 정규식 패턴을합니다. 내가 시도한 것은 다음과 같다.
(?!excludedpath\/)(.*)\.(gif|jpg|png)$
Apache의 다시 쓰기 규칙에서이 정규식 패턴을 사용하고 싶다.
RewriteCond %{REQUEST_FILENAME} (?!excludedpath\/)(.*)\.(gif|jpg|png)$
RewriteRule ^(.*)$ $1 [L]
RewriteCond "/my/path/to/application/%{REQUEST_URI}" !-f
RewriteRule ^(.*)$ /index.php/$1 [L]
누구는 여전히 세 개의 문자열과 일치하는 이유를 말해 줄 수 : This Link 어떻게 그것을 해결하기 위해 그들이 http://example.com/excludedpath/some-image.jpg
의 형식에 있지 않으면 기본적으로 간단히 말해서 나는 (그 세 확장자를 가진) 모든 이미지를로드 할?
: 당신의 Rubular 나 예를 마지막 문자열을 슬래시로 시작했기 때문에 당신이 두 변종을 제외 할 경우
, 당신은 내다에 옵션 슬래시를 추가 할 수 있습니다 : //stackoverflow.com/questions/6869679/negative-rewrite-rule-for-redirecting-everything-thats-not-an-image – ziya