0
我試圖阻止壞機器人點擊某個鏈接到一個運行Apache 2.4的站點。這裏是我試圖在htaccess
:拒絕訪問URL,然後在htaccess中的IP塊
RewriteEngine On
# Check for the suspect querystring first
RewriteCond %{QUERY_STRING} gclid=(.*)
RewriteRule .* - [E=IsAdClick:1]
# Filter on those requests with an ad string
<IfDefine IsAdClick>
# BAN USER BY IP
Order Deny,Allow
Deny from 172.64.0.0/13
Deny from 173.245.48.0/20
...
</IfDefine>
拒絕規則的工作,如果他們是自己的,但對我的生活我無法獲得有條件工作。我試過其他東西,如
<If "%{QUERY_STRING} =~ /gclid=.*?/">
# BAN USER BY IP
Order Deny,Allow
Deny from 172.64.0.0/13
Deny from 173.245.48.0/20
...
</If>
但沒有任何效果。交通仍然通過。我錯過了什麼?我不想爲每個IP寫一大堆RewriteCond
,也不要更改.config
文件。謝謝。
更新:根據this SO post似乎IfDefine
只響應命令行參數。參考文獻:
Apache中IfDefine指令,只有,只有當我只能說我 意味着ONLY,響應在命令行中傳遞的參數。讓我 強調一點。只有命令行!
如何達到我期待的效果?