重写条件:引荐来源网址,查询字符串或用户代理

时间:2019-01-29 22:38:05

标签: .htaccess

我试图使用多种条件拒绝对wp-login.php的访问,这些条件是针对蛮力攻击而改编自Wordpress Codex的,但需要添加一个子句来检查查询字符串。

我正在改编Wordpress Codex(https://codex.wordpress.org/Brute_Force_Attacks)提供的代码。

我使用的是自定义登录表单和流程,因此希望重定向或阻止对wp-login.php的所有直接访问。但是,当我这样做时,用户电子邮件中的密码重置链接将不起作用。因此,我想到了添加OR条件来检查查询字符串中是否存在一个值,但无法使该值正常工作。

我已经阅读了htaccess手册和一些StackExchange问​​题,但是找不到解决方案。以下是基于这项研究的当前解决方案。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_URI} .*/(login|wp-login)\.php.*
    RewriteCond %{HTTP_REFERER} !.*dev.site.com.* [OR]
    RewriteCond %{QUERY_STRING} !(^|&)site=cad(&|$) [OR]
    RewriteCond %{HTTP_USER_AGENT} ^$
    RewriteRule (.*) http://%{REMOTE_ADDR}/$1 [R=301,L]

</ifModule>

这仍然会将密码更改链接重定向到404,但我不确定为什么。样本链接:http://dev.site.com/wp-login.php?site=cad&action=rp&key=O71L4xaXB25ljsdf902&login=uname

查询字符串“ site = cad”是查询字符串的第一部分,但是如果有必要,我可以将其放置在任何地方。

我也可以拒绝所有请求,而不是进行重定向。

感谢任何想法!

0 个答案:

没有答案