Isapi-Lewrite가있는 디렉토리 제외
-
22-08-2019 - |
문제
나는 Isapi-Lewrite와 함께 디렉토리를 배제하려고합니다 (참고 : 이것은 Mod-Lewrite의 Windows/IIS 포트입니다).
제외하고 싶은 디렉토리는 사이트의 루트에있을 때 "API"입니다.
내 규칙은 다음과 같습니다.
rewriterule ^(/api /)(.+)$ $ 1 $ 2 [NC, L
요청은 다음과 같이 보일 것입니다 :/api/v2/users? usernames = scottw
불행히도, 쿼스트 링 값은 항상 제외되고 URL은/api/v2/user로 다시 작성됩니다.
나는 (.+)가 다른 모든 것을 포착 할 것이라는 가정하에 공격하고 있습니다.
제안이 있습니까? 아니면 디렉토리를 배제하는 더 나은 방법?
감사
업데이트: 또한 규칙을 단순화했지만 아무 것도 변경하지 않았습니다.
Rewriterule ^(/api /.+)$ $ 1
해결책
여기에는 두 가지가 있습니다.
- regex는 ^(api/)이어야하며 ^(/api)가되어야합니다. 첫 번째 "/"는 제외됩니다.
- isapi_rewrite와 함께 배송하는 Regex Parser 도구는 쿼리 스트링을 올바르게 처리하지 않는 것 같습니다.
마침내 작동하는 것으로 보이는 규칙은 다음과 같습니다.
RewriteRule ^(api/.+) $1 [NC,L]
다른 팁
나는 때때로 '.+'이상하게 작동한다.
제휴하지 않습니다 StackOverflow