当非管理员尝试访问 wp-admin 或 wp-login.php 时,如何将用户重定向到 404 页面未找到错误

2024-01-02

出于安全原因,我试图通过重写链接来限制我的 WordPress 网站管理员和登录面板对非管理员用户的访问,这样如果用户输入http://www.mysite.com/wp-login.php http://www.mysite.com/wp-login.php or http://www.mysite.com/wp-admin http://www.mysite.com/wp-admin他被重定向到错误 404 页面,但如果他输入http://www.mysite.com/blah-login http://www.mysite.com/blah-login or http://www.mysite.com/blah-admin http://www.mysite.com/blah-admin被重定向到我的 WP 管理或登录面板。我有以下选项可以做到这一点。

  1. 重写我不擅长的 .htaccess 文件,并且不想弄乱我网站的 .htaccess 文件。
  2. 使用我通过编写一个小插件完成的 $wp_rewrite 类,其代码如下。

    register_activation_hook( __FILE__, 'activate' );
    function activate() {
        rewrite();
        flush_rewrite_rules();
    }
    register_deactivation_hook( __FILE__, 'deactivate' );
    function deactivate() {
        flush_rewrite_rules();
    }
    add_action( 'init', 'rewrite' );
    function rewrite() {
        add_rewrite_rule( 'blah-admin/?$', 'wp-admin', 'top' );
        add_rewrite_rule( 'blah-login/?$', 'wp-login.php', 'top' );
        add_rewrite_rule( 'blah-register/?$', 'wp-register.php', 'top' );
    }
    

    它工作完美,唯一的问题是它不限制对 wp-admin、wp-login.php 或 wp-registe.php 的访问(这是必须的)。

  3. 我可以将以下规则写入新的 .htaccess 文件。

    AuthUserFile /dev/null
    AuthGroupFile /dev/null
    AuthName "Wordpress Admin Access Control"
    AuthType Basic
    
    <LIMIT GET>
      order deny,allow
      deny from all
      allow from xxx.xxx.xxx.xxx
    </LIMIT>
    

    并将其放在 wp-admin 文件夹下,它有两个缺点,一是它只会限制对我的 wp-admin 文件夹的访问,而不是 wp-register.php 或 wp-login.php ,第二是我是 DHCP 客户端,所以allow from xxx.xxx.xxx.xxx对我不起作用。

  4. 我可以使用第二条和第三条规则的组合,但它肯定行不通,因为我无法为整个被阻止的文件夹提供替代的永久链接。

  5. 至于最后的手段,我可​​以使用 wp-modal 插件的永久链接重写功能,它的工作方式就像一个魅力,但这个插件与我的主题不兼容。

那么我的问题真的有解决办法吗?


我使用此代码片段将人们从后端重定向(如果他们尚未登录)。您可以修改它以指向您的 404:

// BLOCK BACKEND ACCESS FOR NON-ADMINS
add_action( 'init', 'blockusers_init' );
function blockusers_init() {
    // If accessing the admin panel and not an admin
    if ( is_admin() && !current_user_can('level_10') ) {
        // Redirect to the homepage
        wp_redirect( home_url() );
        exit;
    }
}

只需更改 URLhome_url()函数到你的404页面下wp_redirect.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当非管理员尝试访问 wp-admin 或 wp-login.php 时,如何将用户重定向到 404 页面未找到错误 的相关文章

  • 多语言网站的 .htaccess 规则

    我正在重新设计 PHP 多语言网站 en es de fr ru 的 URL 该网站的 URL 是这样的 www mysite com page www mysite com page subpage1 www mysite com pag
  • WordPress 访问

    我正在与朋友一起开发一个网站 使用Wordpress我们正在尝试从我的计算机和他的计算机访问同一个 WordPress 帐户 以便我们可以一起在网站上工作 我们尝试将彼此添加为管理员 但只能从创建管理员的计算机上访问新帐户 有谁知道如何做到
  • 如何通过htaccess在codeigniter中隐藏index.php和控制器名称

    我想从我的 codeignier url 网站隐藏 index php 和控制器名称 我也想替换这个术语 seo test product ad test product 我在下面提到了我的 htaccess 文件 请指导我如何解决这个问题
  • jQuery 更改为隐藏字段后触发重力表单中的表单更新

    简而言之 是否有 JavaScript 函数或挂钩来触发重力形式的更新 以便执行条件逻辑 原问题 我正在使用重力形式 并且创建了一个 变化时 事件 gform 1 find gfield date dropdown month select
  • WordPress 计划事件未在设定时间触发

    在 WordPress 中 我正在创建一个插件 用于向用户发送电子邮件 为此 我使用 WordPresscron工作 所以基本上它要做的就是每小时向用户发送电子邮件 所以我的代码看起来像这样 public function construc
  • WordPress 管理栏未显示在网站前端

    请问有人可以帮我解决这个问题吗 WordPress 管理栏未显示在我网站的前端 公共可见页面 上 它显示我何时在后端登录 即仪表板 用户设置正常 设置为在查看站点时显示管理栏 我尝试停用 然后重新激活 已安装的插件 但仍然没有显示 只是背景
  • 替代 header("Content-type: text/xml");

    是否存在与以下内容等效的内容 header Content type text xml 我将 Google 地图与 Wordpress 一起使用 但收到 标头已发送 错误 我已经检查了所有文件并删除了所有空白 但错误仍然出现 所以只是想知道
  • 订单编辑页面中的 WooCommerce 自定义字段

    Display custom field Orders edit page add action woocommerce before order itemmeta storage location of order items 10 3
  • 为 foreach() 提供的参数无效..Wordpress

    突然开始出现以下代码的错误 img src title 有时分类 贷款俱乐部 是空的 这可能是问题所在吗 如果是这样 有人可以指出我正确的代码吗 Add if之前的情况foreach
  • Woocommerce for Wordpress:如何修改订单号/id?

    我已在我的网上商店中实施了 WooCommerce 并连接了 CorvusPay 网关以进行在线支付 现在我们遇到的问题是 Corvus 要求我的订单号包含字符 大写和小写 以及数字 我已经看到并尝试了许多关于如何在 Wordpress 中
  • 在 WordPress 中使用自定义字段进行搜索

    我正忙于使用 WordPress 开发 Web 应用程序 我创建了一个带有一些自定义字段的自定义帖子 当我使用 WordPress 搜索框搜索帖子时 仅返回标题与搜索字符串匹配的帖子 我想在搜索域中添加自定义字段 我可以在 WordPres
  • 多文件上传字段的重力形式预览缩略图

    我们使用重力形式将多个图像附加到图库自定义字段并创建新帖子 我们不知道如何在 HTML5 导入字段下显示图像缩略图 而不仅仅是在提交表单之前显示文件名 之前的答案仅涵盖单个文件上传 图片上传重力形式预览 https stackoverflo
  • 任何插件安装失败 - 无法复制文件错误

    每次我安装一个新的 WordPress 插件时 它都会说无法复制文件和文件地址 有谁知道为什么会这样 我遇到了同样的问题 但就我而言 我是使用 FTP 进行更新 我通过将主机名设置为 localhost 而不是使用 IP 来修复此问题 这是
  • 管理面板的 htaccess 重写规则

    我的网络应用程序中有这样的 url 模式 www mysitename com foldername controller method 所有请求的页面首先被重定向到根文件夹上的index php 然后处理请求的页面 但每当我进入管理面板
  • AH10411 错误:在 apache mod_rewrite 中管理空格和 %20

    我今天更新了 Apache 到 2 4 56 1 并且加载了 htaccess过去有效的重写现在出现了 AH10411 错误 与查询中的空格有关 我正在努力寻找 适当 的解决方案 用户单击一个链接 例如 a href FISH 20J123
  • WordPress 网站上出现数据库错误“一个或多个数据库表不可用”

    Error One or more database tables are unavailable The database may need to be repaired 我怎么解决这个问题 wp config php 是正确的 我使用
  • 文件不存在时.htaccess 重定向

    我正在使用 htaccess 将用户重定向到我的主控制器 并且工作正常 但是当我调用一个不存在的js文件时 如下所示 这个js文件不只是说404 文件不存在 而是获取index php的内容 我应该如何进行 这是我的 htaccess
  • mod_rewrite :如果/否则输入 RewriteRule

    以下重写将以数字 4 开头的字符串作为变量传递给 process php RewriteCond REQUEST FILENAME f RewriteCond REQUEST FILENAME d RewriteRule 4 process
  • 我怎样才能让这个脚本在 WordPress 上运行?

    我有这个脚本 document ready function text1 click function this hide 代码html div class div1 p class text1 text to appear when th
  • 将按钮文本放在一行上

    我的按钮文本在 safari 中显示在一行上 即使在初次单击后 但是在 google chrome 上 当您第一次到达该按 钮时 我的按钮将显示在一行上 但是当您浏览更多帖子并再次遇到 加载更多 按钮时 文本搞砸了 这只发生在谷歌浏览器上

随机推荐