我正在处理这件事,因为有一段时间,我已经阅读了大量的文章和东西,但我找不到一个显示正确的方式,标准,正确的地方,无论你喜欢称之为什么,阻止访问我的wp-admin或wp-login.php
在我看到的所有Wordpress网站(精心制作的网站)上,如果您输入site.com/wp-admin,您将永远不会看到任何内容
正如我所看到的,一种方法是通过创建.htaccess文件来限制对该文件夹的访问,并通过IP限制对该文件夹的访问。似乎是“最干净”的方式。我不确定的是我有一个由我的ISP提供的动态地址,所以在一定时间我的IP会改变,这将迫使我也将.htaccess更改为我的新地址,我看不到那很实际。我也可以设置一个范围,但通过这样做,我还将授权访问该IP范围内的所有人(例如我的ISP的其他客户端)。
然后我努力寻找最佳/标准的方法来做到这一点。
任何人都可以帮助我?
由于
答案 0 :(得分:3)
来自this Codex discussion - this blog article声明提供重命名wp-admin
的解决方案。我没有对它进行过测试,但它确实对人们有用。
然而,
这个黑客有它的缺点。
- 您帖子上的“修改”链接将不再有效。您可能希望将其从主题中删除。
- 侧栏上的管理员链接将不再有效。您可能希望将其从主题中删除。
- 标准登录链接将不再有效。相反,请使用书签,因为它会在您完成登录后将您重定向回隐藏的登录页面。
作为替代方案,在wp-admin登录之上还可以选择adding an Apache .htaccess
password dialog。这不会隐藏它,但它会提供另一个(虽然很烦人)安全层。
如果您拥有动态IP,或者想要从不同的网络访问该网站,我不知道有一种很好的.htaccess方式来限制IP访问。
答案 1 :(得分:0)
我认为,如果您只检查admin_url
参数,可以通过为site_url
添加过滤器(或者甚至可能$path
)来解决上述问题。< / p>
这几乎未经测试,但可能是一个很好的起点:
function my_admin_url($url = null, $path = null, $blog_id = null) {
// This our `wp-admin` replacement
// probably wiser to use a filter/function for this, so that you can
// do it dynamically by checking for the actual directory or something
$custom_admin_dir = 'my-admin';
// Remove filename.php
if (!empty($path))
$url = dirname($url);
// Remove wp-admin
$url = dirname($url);
// Build up a new URL
$url = trailingslashit(trailingslashit($url) . $custom_admin_dir) . $path;
return $url;
}
add_filter('admin_url', 'my_admin_url', 10, 3);
此外,如果您在网络网站上,可能需要考虑$blog_id
参数和/或对network_admin_url
过滤器执行相同的操作。
答案 2 :(得分:0)
how to secure wp-admin上有一篇文章。它也有它的缺点,因为每次更新wordpress时它都会被覆盖,但它完成了工作。