Apache 리디렉션 규칙을 사용하여 표준 URI 차단

Apache 리디렉션 규칙을 사용하여 표준 URI 차단

다음 패턴의 URL을 차단하고 싶습니다.

   172.31.X.X "172.31.X.X" - - [19/Apr/2019:06:33:56 +1000] "POST /wp-cron.php?doing_wp_cron=1555619633.5413479804992675781250 HTTP/1.1" 302 274 "http://www.example.com/wp-cron.php?doing_wp_cron=1555619633.5413479804992675781250" "WordPress/4.9.5; https://www.example.com.au" 155 "-" "Cookies:-" –

다음을 시도했지만 작동하지 않는 것 같습니다.

 RewriteCond %{REQUEST_URI} ^/wp-cron.php?doing_wp_cron=[0-9]+$ [NC]
 RewriteRule ^.*$ - [F,L]

답변1

RewriteCond %{QUERY_STRING}쿼리 문자열이 필요 하며 .점과 일치하도록 이스케이프해야 합니다.

https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewritecond

REQUEST_URI
     "/index.html"과 같은 요청된 URI의 경로 구성 요소입니다. 이는 특히 QUERY_STRING이라는 자체 변수로 사용 가능한 쿼리 문자열을 제외합니다.

RewriteEngine On  

# this matches:
# /wp-cron.php?doing_wp_cron=1555619633.5413479804992675781250
# /wp-cRoN.php?DOING_wp_cron=.&foo=bar
# /wp-cron.php?foo=bar&doing_wp_cron=.

RewriteCond %{QUERY_STRING} (^|&)doing_wp_cron=[0-9\.]+(&|$) [NC]
RewriteRule ^/wp-cron.php$ - [NC,F,L]

관련 정보