php - 限制对特定 url htaccess 的访问
问题描述
我需要限制对这个特定域的访问:
mydomain.com/wp-admin
我试过这段代码但没有用
RewriteRule ^wp-admin(?!/something\.php/allow/this/uri/?$) - [F,L,NC]
请问我该怎么做?
解决方案
单一IP地址访问
要允许从单个 IP 地址访问,请替换123\.123\.123\.123
为您自己的 IP 地址:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123$
RewriteRule ^(.*)$ - [R=403,L]
多IP地址访问
要允许从多个 IP 地址访问,请替换123\.123\.123\.xxx
为您自己的 IP 地址:
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.121$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.122$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123$
RewriteRule ^(.*)$ - [R=403,L]
动态IP地址访问,由referer限制
如果您的 IP 地址发生变化,您可以通过只允许直接来自您的域名的登录请求来保护您的 WordPress 站点。只需替换example\.com
为您自己的域名
大多数蛮力攻击依赖于直接POST
向您的wp-login.php
脚本发送请求。因此,要求POST
将您的域作为推荐人可以帮助清除机器人。
RewriteEngine on
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{HTTP_REFERER} !^http://(.*)?example\.com [NC]
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteRule ^(.*)$ - [F]
等待至少15-20 分钟,然后尝试再次登录您的 WordPress 站点。如果您尝试在块的15 分钟窗口内访问 WordPress 仪表板,这可能会延长块。在尝试再次访问您的 WordPress 站点之前,请务必等待上一个块过期并耐心等待。
对于你的情况,如果你想限制它url yourdomainname.com/wp-admin
,使用这个:
<files wp-login.php>
# set up rule order
order deny,allow
# default deny
deny from all
allow from x.x.x.x
allow from y.y.y.y
allow from z.z.z.z
</files>
ErrorDocument 401 default
ErrorDocument 403 default
ErrorDocument 404 default
推荐阅读
- c# - 为什么“as”运算符必须传递一个引用或可为空的类型?
- r - 是否有更快的方法来创建具有给定模式和长度的向量,仅填充 NA 值
- java - Java 11 中默认构造函数的可见性?
- android - 当我尝试打开相机时,为什么会出现这个致命错误?
- javascript - 如何检查表格中的相邻单元格以及它们是否应该着色
- excel - 如何使用引用单元格中的值设置范围?
- arrays - 使用双 for 循环合并重叠间隔
- python - ModuleNotFoundError:运行 celery worker 时没有名为“social.models”的模块
- jquery - 如果 inout 字段的值为 0,则在 laravel 中使用 jquery 删除表行
- css - CSS:有没有可能实现如下布局?