【发布时间】:2018-04-15 08:34:09
【问题描述】:
我正在子域中设置 WordPress 站点。子域将位于主目录的子目录中。
所以http://dl.abc.com 将在文件夹 /public_html/dl/ 中
安装 WordPress 后,其中会有 wp-admin 文件夹: /public_html/dl/wp-admin/
除了来自澳大利亚和新加坡的用户之外,我们想要阻止任何试图访问它的 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 未找到”错误而不是拒绝错误。 最好的方法是什么?
不幸的是,我们没有任何类型的开发/测试服务器可以先进行尝试,因此希望在第一次通过时尽可能接近完美。
谢谢。 _
【问题讨论】:
标签: wordpress apache .htaccess geoip