Ich habe zahlreiche Spam-Anfragen in den Nginx-Zugriffs-/Fehlerprotokollen wie:
/bcaashop/collections/new-era-new-era-indiana-pacers-nba-940-a-frame-snapback-black
die ich folgendermaßen blockiere:
if ($query_string ~ "\b(bca*.shop|nike|adidas)\b") { set $block_spam 1; } if ($block_spam = 1) { return 444; }
.json
Wenn die Anfrage jedoch beispielsweise wie folgt endet :
/bcaashop/collections/new-era-new-era-indiana-pacers-nba-940-a-frame-snapback-black.json
Es wird ein 404-Fehler im error.log ausgegeben und das Protokoll mit den folgenden ähnlichen Anforderungsfehlern gefüllt.
Ich vermute, dass dies an der folgenden Regel liegt:
location ~* \.(jpg|jpeg|png|gif|ico|css|js|svg|woff|ttf|json|otf)$ { add_header Cache-Control "public"; expires 7d; }
das JSON enthält und die obige Regel überschreibt. Ich habe versucht, die Reihenfolge der Regeln zu ändern, aber ich erhalte immer noch 404 statt 444.
Wie blockiere ich Anfragen mit JSON richtig? Jeder Tipp ist willkommen.