首页 > 解决方案 > Wordpress .. 如何将网站限制为 IP 或登录

问题描述

我正在尝试创建一个公司 Intranet 站点。我不想为该站点创建大量用户,并且宁愿只允许访问,如果您在 IP 上,或者如果在异地则您必须登录。这会将用户范围缩小到仅在家工作的用户等。如果您与登录或 IP 号码或数字数组不匹配,我希望使用重定向到身份验证页面。我宁愿不使用插件。

  function intranet( ) {
    $whitelist = array('192.168.0.1', 192.168.0.2);
      if ( ! is_user_logged_in() || !in_array($_SERVER['REMOTE_ADDR'], $whitelist) ) {
            auth_redirect();
    }
}

但是,它似乎不起作用。我已阅读有关使用 .htaccess 的建议,但这将限制整个站点的 IP

deny from all
allow from 98.6.000.111

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

据我所知,这种方法不会让我通过登录选项从外部访问该网站。任何帮助表示感谢谢谢。

标签: wordpressauthenticationredirectip-address

解决方案


好吧,我已经成功了。我不知道这在某种意义上与我的开场问题有何不同,但它仍然有效。

  function intranet( ) {
    $whitelist = array('0.0.0.1', '0.0.0.2'); 
    if (in_array($_SERVER['REMOTE_ADDR'], $whitelist)) {
       // do nothing
      }
    else {
        if(is_user_logged_in()) {
            //do nothing
        }
        else {
            auth_redirect();
        }
    }
}

希望这对其他人有帮助。


推荐阅读