限制对特定URL htaccess的访问

时间:2018-07-07 05:57:16

标签: php wordpress .htaccess

我需要限制对该特定域的访问:

mydomain.com/wp-admin

我尝试了此代码,但没有成功

RewriteRule ^wp-admin(?!/something\.php/allow/this/uri/?$) - [F,L,NC]

请问我该怎么做?

1 个答案:

答案 0 :(得分:1)

单个IP地址访问权限

要允许从单个IP地址进行访问,请用您自己的IP地址替换123\.123\.123\.123

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地址访问权限

  

您可以check your IP to get your computer's IP address

要允许从多个IP地址进行访问,请用您自己的IP地址替换123\.123\.123\.xxx

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地址访问,受引用者限制

如果您的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网站。

source

如果您想限制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