我想完全阻止以下格式的网址请求:
/cat/pathfinder/pathfinder-accessories/?add-to-cart=27368
或
/cat/pathfinder/?add-to-cart=27368
我试图通过HTaccess做到这一点:
RewriteRule ^(.*)cat$^(.*)?add-to-cart=$^(.*)$ - [F]
但这不匹配。你能看到为什么吗?
在同一.htaccess文件中,我还有其他更简单的重写器可以正常工作。
上下文:
我有一个在线商店网站,被“添加到购物车”的自动请求所困扰。该商店有成千上万的产品,因此如此多的同时请求对内存和处理器的影响是可怕的。 (如果需要的话,这家商店是Wordpress with Woocommerce)
我更改了内容,以使该机器人不再能同时在所有20个产品上同时点击“添加到购物车”页面,但它们仍在点击它们,因此很显然有一个列表。我一直无法通过IP阻止请求,因为它们是通过Cloudflare来自许多位置的。
答案 0 :(得分:1)
查询字符串与RewriteRule
不匹配。
您可以改用此规则:
RewriteCond %{THE_REQUEST} /cat/[^?]*\?add-to-cart=\d+ [NC]
RewriteRule ^ - [F]