zen*_*zen 1 apache wordpress .htaccess
试图从较旧的允许,拒绝,命令语法到新的安全WordPress管理部分,但我不能让它识别我的IP.
这是我的.htaccess文件包含在/wp-admin文件夹中.
ErrorDocument 401 default
ErrorDocument 403 default
# Disallow access for everyone except these IPs
<RequireAny>
Require ip 50.153.218.4
</RequireAny>
# Allow plugin access to admin-ajax.php around password protection
<Files admin-ajax.php>
<RequireAll>
Require all granted
</RequireAll>
</Files>
Run Code Online (Sandbox Code Playgroud)
这就是我在.htaccessWordPress mod重写信息下的根目录.
# Protect WordPress
ErrorDocument 401 default
ErrorDocument 403 default
<Files wp-login.php>
<RequireAny>
Require ip 50.153.218.4
</RequireAny>
</Files>
Run Code Online (Sandbox Code Playgroud)
但我只是不断收到403 Forbidden错误.当我在IP下添加Require All Granted时,它可以正常工作,但这会将其打开给每个用户.似乎apache只是没有正确读取我的IP?任何人都知道我做错了什么?
你的语法对我来说非常好.
我认为apache可能无法正确读取用户IP的唯一原因是你是在代理或负载均衡器之后.如果是这种情况,您将使用X-Forwarded-For而不是ip.在PHP中,您可以通过比较$_SERVER['REMOTE_ADDR']和确认您是否落后于代理$_SERVER['HTTP_X_FORWARDED_FOR'].
如果这不是问题,那么您可能会更好地在ServerFault找到答案.
我可以为你提供一些解决方法.最简单的解决方案可能是使用几个WordPress 安全插件之一,允许您通过IP地址限制对后端的访问.
或者,在您的主题或插件中,您可以实现相同类型的身份验证逻辑:
add_action('init', function() {
$allowed_ips = array('50.153.218.4');
if(is_admin() || $GLOBALS['pagenow'] == 'wp-login.php') {
if( !DOING_AJAX && !in_array($_SERVER['REMOTE_ADDR'], $allowed_ips) ) {
wp_die('', 'Forbidden' array(
'response' => 403
));
}
}
});
Run Code Online (Sandbox Code Playgroud)
更新:从评论看起来有一个代理涉及.这应该工作:
ErrorDocument 401 default
ErrorDocument 403 default
SetEnvIF X-Forwarded-For "50.153.218.4" AllowIP
# Disallow access for everyone except these IPs
<RequireAny>
Require env AllowIP
</RequireAny>
# Allow plugin access to admin-ajax.php around password protection
<Files admin-ajax.php>
<RequireAll>
Require all granted
</RequireAll>
</Files>
Run Code Online (Sandbox Code Playgroud)
和
# Protect WordPress
ErrorDocument 401 default
ErrorDocument 403 default
SetEnvIF X-Forwarded-For "50.153.218.4" AllowIP
<Files wp-login.php>
<RequireAny>
Require env AllowIP
</RequireAny>
</Files>
Run Code Online (Sandbox Code Playgroud)
您还应该能够使用"允许,拒绝"语法使用类似的方法.
| 归档时间: |
|
| 查看次数: |
6087 次 |
| 最近记录: |