2015-08-09 2 views
0

Я хочу запретить доступ к определенному ip. Я пробовал этот код htaccess, но не работал:Htaccess deny specific get parameter

<Files "index.php?action=deny"> 
Order Allow,Deny 
Deny from XXXX 
Allow from all 
</Files> 

где XXXX - адрес ip. как я могу сделать что-то подобное, поэтому он будет отрицать только определенный параметр get, а не весь файл?

ответ

2

Ваш шаблон в директиве Files вводит в заблуждение. Если вы хотите сопоставить URL с аргументом запроса action=deny; Вы должны были бы использовать <Location>:

<Location /index.php?action=deny> 
+2

Местоположение не соответствует строке запроса – covener

3

В 2.4, используются для проверки строки запроса

<If "%{QUERY_STRING} =~ /action=deny/"> 
    Require all denied 
</If> 

В 2.2, используйте mod_rewrite:

RewriteEngine ON 
RewriteCond %{QUERY_STRING} action=deny 
RewriteRule index.php - [F] 
0

Вы можете использовать это правило в ваш корень .htaccess:

RewriteEngine On 

RewriteCond %{QUERY_STRING} ^action=deny$ [NC] 
#RewriteCond %{REMOTE_ADDR} =11.22.33.44 
RewriteRule ^index\.php$ - [F] 

Замените 11.22.33.44 на ваш фактический IP-адрес