我正在尝试阻止所有国家/地区访问,除非使用.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 :(得分: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