2016-03-15 79 views
1

我想阻止除使用.htaccess之外的所有国家/地区的访问权限。.htaccess:阻止除一个国家以外的所有国家

我现在所拥有的是什么

RewriteEngine on 
<Directory nameOfDirectory> 
Order Allow, Deny 
Allow IP range 1 
Allow IP range 2 
</Directory> 

我不断收到内部服务器错误。我做错了什么?请注意,有关国家实际上拥有超过500个IP范围。

当然,除了.htaccess之外,如果还有更好的方法来做到这一点,我全都是耳朵。

更新:Apache的错误日志

[Tue Mar 15 06:29:37.308444 2016] [core:alert] [pid 14435] [client xxx.xxx.6.2:59534] /var/www/.htaccess: <Directory not allowed here 
+0

为什么不试试[此发生器(http://incredibill.me/htaccess-block-country-ips)创建的地址和.htaccess文件给你? – Egg

+0

@egg我之前曾尝试过该网站。我仍然收到'内部服务器错误',再加上我想阻止该网站未提供语法的特定目录。 – Rami

+0

你使用的是什么版本的Apache? –

回答

0

我不是否认第一和添加Deny from all尝试这样做,但如何;是这样的:

<Directory "nameOfDirectory"> 
    Order deny,allow 
    Deny from all 
    Allow from 192.168.0.1 
    Allow from 192.168.0.2 
    Allow from 10.0.0.1 
    Allow from 10.0.0.2 
    Allow from 127.0.0.1 
</Directory> 

error.log告诉你,你不必使用<Directory>许可。因此,您可以允许它(在您的apache配置中使用AllowOverride Authconfig FileInfo Options作为目录),也可以在目录中放置一个htaccess文件以保护和删除<directory>标记。

这将目录中的工作,你想保护:

Order deny,allow 
    Deny from all 
    Allow from 192.168.0.1 
    Allow from 192.168.0.2 
    Allow from 10.0.0.1 
    Allow from 10.0.0.2 
    Allow from 127.0.0.1 
+0

试过了。问题在于它抛出了一个'服务器错误',就好像语法有问题一样。 – Rami

+0

apache错误日志告诉你什么? – Egg

+0

更新后的错误日志。似乎我不能在/ var/www中有.htaccess? – Rami