【发布时间】:2017-10-26 01:30:40
【问题描述】:
我正在尝试配置我们的 wordpress .htaccess 文件,以便它阻止对 wordpress wp-login.php 和管理页面的访问,除非客户端来自我们的网络。
开发环境可以直接访问,但生产环境在代理之后,所以为了简单起见,我想配置一组适用于任何一种情况的规则。
我已经配置了以下一组规则,根据我的研究,这些规则应该可以工作:
#only allow use of wp-login or wp-admin from users inside
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^192\.168\.(1|2|3|4)\.[0-9]{1,3}$ [OR]
RewriteCond %{HTTP:X-FORWARDED-FOR} !^192\.168\.(1|2|3|4)\.[0-9]{1,3}$
RewriteRule ^(.*)$ - [R=403,L]
但是,由于某种原因,REMOTE_ADDR 和 X-FORWARDED-FOR 之间的 [OR] 似乎被忽略了,导致页面在所有情况下都被阻止。
我错过了什么吗?
编辑:我不应该有 OR 条件。显然我的大脑没有足够的咖啡来计算基本的二元运算。
【问题讨论】:
标签: wordpress apache .htaccess mod-rewrite