2

我一直在处理这个问题,我已经阅读了大量的文章和东西,但我找不到一个地方显示正确的方式,标准,正确,无论你喜欢怎么称呼它,以防止访问到我的 wp-admin 或 wp-login.php

在我看到的所有 Wordpress 网站(制作精良的网站)上,如果您键入 thesite.com/wp-admin,您将永远看不到任何内容

正如我所看到的,一种方法是通过创建一个 .htaccess 文件来限制对该文件夹的访问,并通过 IP 限制对该文件夹的访问。似乎是“最干净”的方式。我不确定的是我的 ISP 提供了一个动态地址,所以在某个时间我的 IP 会改变,这将迫使我也将 .htaccess 更改为我的新地址,我看不到那个实用。我也可以设置一个范围,但通过这样做,我还将授权访问该 IP 范围内的所有人(例如我的 ISP 的其他客户端)。

然后我正在努力寻找最好/标准的方法来做到这一点。

任何人都可以帮助我吗?

谢谢

4

3 回答 3

3

这个 Codex 讨论-这篇博客文章声称提供了一个重命名的解决方案wp-admin。我没有测试过它,但它似乎确实对人们有用。

然而,

这种黑客有其缺点。

  • 您帖子上的“编辑”链接将不再有效。您可能希望将其从主题中删除。
  • 您侧边栏上的管理链接将不再有效。您可能希望将其从主题中删除。
  • 标准登录链接将不再有效。相反,请使用书签,因为它会在您完成登录后将您重定向回隐藏的登录页面。

作为替代方案,还可以选择在 wp-admin 登录顶部添加 Apache.htaccess密码对话框。这不会隐藏它,但它会提供另一个(尽管很烦人)安全层。

如果您有动态 IP,或者想从不同的网络访问该站点,我不知道有一种好的 .htaccess 方法来限制 IP 访问。

于 2012-02-09T12:20:20.727 回答
0

我认为可以通过添加过滤器来解决上述缺点admin_url(或者即使site_url您只是检查$path参数)。

这几乎没有经过测试,但可能是一个很好的起点:

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

于 2012-02-09T13:12:13.763 回答
0

有一篇关于如何保护 wp-admin的文章。它也有它的缺点,因为每次更新 wordpress 时它都会被覆盖,但它可以完成工作。

于 2012-10-20T03:30:06.773 回答