htaccess - 基于地理位置的拒绝目录

时间:2018-04-15 08:34:10

标签: wordpress apache .htaccess geoip

我正在子域中设置WordPress网站。子域名将位于主目录的子目录中。

所以http://dl.abc.com将位于/ public_html / dl /

文件夹中

安装WordPress时会出现wp-admin文件夹: /的public_html / DL /可湿性粉剂管理员/

我们想阻止任何试图访问它的人(或其中包含的任何文件/子目录)的wp-admin文件夹,除了来自澳大利亚和新加坡的用户。

这是正确的方法吗?(我怀疑一个警告是通过调用admin-ajax.php来调用ajax请求的任何插件都无法正常工作?)

<ifModule mod_geoip.c>
GeoIPEnable On
# Put countries to allow here
SetEnvIf GEOIP_COUNTRY_CODE NZ AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE SG AllowCountry
Deny from all
Allow from env=AllowCountry
</ifModule>

第二个问题是我们如何使用将安装在/ public_html / dl /文件夹中的wp-login.php文件做同样的事情? 如果我们把它放在/ public_html / dl /目录下的.htaccess文件中,这会工作吗?或者有更好的方法吗?

<Files "wp-login.php">
<ifModule mod_geoip.c>
GeoIPEnable On
# Put countries to allow here
SetEnvIf GEOIP_COUNTRY_CODE NZ AllowCountry
SetEnvIf GEOIP_COUNTRY_CODE SG AllowCountry
Deny from all
Allow from env=AllowCountry
</ifModule>
</Files>

最后,我希望通过以下两个示例获得一些额外的“安全隐患”我宁愿返回“404 not found”错误而不是拒绝错误。 最好的方法是什么?

不幸的是我们没有任何类型的开发/测试服务器可以先尝试一下,所以希望第一次尽可能接近完美。

谢谢。 _

2 个答案:

答案 0 :(得分:1)

htaccess - 根据地理位置拒绝目录 检查此网址:https://mediatemple.net/community/products/dv/204643270/using-htaccess-rewrite-rules

答案 1 :(得分:0)

要回答您的第二个问题,请根据此页面: https://www.askapache.com/htaccess/using-filesmatch-and-files-in-htaccess/ 您可以使用<Files></Files><FilesMatch></FilesMatch>指令包围其他指令:

  

&#34;该指令限制所附指令的范围   文件名。它应该与指令匹配。该   本节中给出的指令将应用于任何对象   使用与指定匹配的basename(filename的最后一个组件)   文件名。部分按它们出现的顺序处理   部分和.htaccess之后的配置文件   文件被读取,但在部分之前。注意可以   嵌套在部分内部以限制部分   他们适用的文件系统。&#34;

所以基本上看来你已经说过的应该工作。