เรามีเซิร์ฟเวอร์ Apache httpd 2.4 เป็นจุดเริ่มต้นสำหรับเว็บไซต์ประมาณ 20 แห่ง และแต่ละเว็บไซต์มีการกำหนดค่าโฮสต์เสมือนของตนเอง การตั้งค่าจำนวนมากอาจซ้ำซ้อน แต่ก็เหมาะสมกับความต้องการของเรา virtualhost แต่ละอันเปลี่ยนเส้นทางการรับส่งข้อมูล http ไปยังหน้าเข้าสู่ระบบ https ซึ่งพร็อกซีผ่านแอป Tomcat ไม่มี docroot จริงสำหรับเว็บไซต์นี้
เรากำลังพยายามบล็อก YandexBot ที่เข้าชมไซต์หลักของเราทุกๆ วินาที เนื่องจากการเปลี่ยนเส้นทางที่สร้าง URL ที่ไม่ซ้ำกันสำหรับแต่ละ Hit เนื่องจากการบล็อกตัวแทนภายใน .htaccess ไม่ใช่ตัวเลือกที่นี่ เราจึงพยายามบล็อก YandexBot ด้วย mod_rewrite ดังที่คุณเห็นด้านล่าง น่าเสียดายที่วิธีนี้ใช้ไม่ได้ เว็บไซต์ของเรายังคงโดนบอทโจมตีด้วยรหัส HTTP 302 ที่เปลี่ยนเส้นทางไปยัง URL ใหม่ ข้อมูลใด ๆ ที่จะได้รับการชื่นชม
<VirtualHost *:443>
ServerName mywebsite.com
ServerAlias *.mywebsite.com
...
RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} Yandex [NC]
RewriteRule ^ - [F,L]
RewriteRule ^/$ https://%{SERVER_NAME}/app/... [R,L]
...
<Location /app/>
Require all granted
RequestHeader unset Origin
ProxyPreserveHost On
ProxyPass http://127.0.0.1:8080/app/...
...
</Location>
...
</VirtualHost>
นี่คือบันทึกที่แสดงในไฟล์ access_log
<ที่อยู่ IP> - - [27/Oct/2021:11:55:49 -0400] "GET /app/...:<unique id>: HTTP/1.1" 302 - 69963 "-" "Mozilla/5.0 ( รองรับ; YandexBot/3.0; +http://yandex.com/bots)"