2012-03-26 2 views
1

Я хочу, чтобы определенный диапазон ips (Canada Country Block IPS) мог использовать метод POST на моей странице входа (http://www.mysite.com/ index.php? m = account_login) и мою страницу регистрации (http://www.mysite.com/index.php?m=account_register) Однако я хочу, чтобы все ips имели доступ к моему основному сайту http://www.mysite.com/index.php и имели возможность используйте метод POST, например, нашу контактную страницу (http://www.mysite.com/index.php?m=contactus).htaccess Разрешить метод POST для ТОЛЬКО диапазонов IP-адресов cetain

Спасибо.

<Limit GET POST> 
order deny,allow 
# Country: CANADA 
# ISO Code: CA 
# Total Networks: 6,365 
# Total Subnets: 79,978,496 
allow from 23.16.0.0/16 
allow from 23.17.0.0/16 
allow from 24.36.0.0/16 
allow from 24.37.0.0/16 
... 
allow from 192.197.216.0/24 
allow from 216.254.192.0/19 
# 
deny from all 
</Limit> 

ответ

1

Там нет прямого способа осуществить это, но я сделал это само с небольшим трюком: -D Limit проверяет только метод запроса, так что нет никакого способа проверить файл или URL. решением для этого является использование директивы FilesMatch. Но здесь, у нас есть проблемы, как и у меня был:. QUERY STRING :-( Решения для этого является использование RewriteRule

RewriteRule login.html index.php т = account_login [L, QSA] RewriteRule регистра? ? .html index.php т = account_register [L, QSA]

Теперь у нас есть все, что мы хотим:.

<FilesMatch "(login|register)\.html$"> 
    <Limit GET POST> 
     order deny,allow 
     # Country: CANADA 
     # ISO Code: CA 
     # Total Networks: 6,365 
     # Total Subnets: 79,978,496 
      allow from 23.16.0.0/16 
      allow from 23.17.0.0/16 
      allow from 24.36.0.0/16 
      allow from 24.37.0.0/16 
      allow from 192.197.216.0/24 
      allow from 216.254.192.0/19 

      deny from all 
    </Limit> 
</FilesMatch> 

RewriteRule (register|login)\.html  index.php?m=account_$1&allow=yes [L,QSA] 
RewriteCond %{QUERY_STRING}  m=account_(register|login) 
RewriteCond %{QUERY_STRING} !allow=yes 
RewriteRule index\.php - [F,L] 

Я предпочитаю, чтобы создать новый файл для входа в систему или регистрации, чтобы избежать RewriteRule сек

Смежные вопросы