HOW TO:使用htaccess将url限制为特定的IP
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HOW TO:使用htaccess将url限制为特定的IP相关的知识,希望对你有一定的参考价值。
我需要阻止一个看起来像www.domain.com/admin/login/的特定网址?使用htaccess和grant权限仅访问特定IP地址的URL。
我们已经尝试过这个并且部分有效。 “?”在URL中似乎给出了问题。当我包括?在htaccess中以及如下所示的URL,它将无法按照它的工作方式工作。我在这做错了什么?
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !=xxx.xxx.xxx.xxx
RewriteRule admin/login/?$ / [R=301,L]
更新:我有一个自定义CMS,它没有典型的树结构,即http://www.mysite.com/folder
与/var/www/folder
不对应,实际上http://www.mysite.com/folder
根本没有单个文件或目录表示。因此,/folder
没有相应的.htaccess文件。我没有看到如何将URL而不是目录附加到重写规则。以下是我一直在玩的重写概念:
这会有用吗?我在网上发现了这个:
<Location /folder>
Order deny,allow
deny from all
allow from xxx.xxx.xxx.xxx
allow from xxx.xxx.xxx.xxx
</Location>
更新#2:问题已经解决。问题是由于我使用Cloudflare的原因。这使得所有来自cloudflare的URL请求。在服务器上安装mod_cloudflare并使用下面的脚本后,我成功地阻止了对公共的访问,只允许指定的IP。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} ^(.*)admin(.*)$
RewriteCond %{REMOTE_ADDR} !^xxx.xxx.xxx.xxx$
RewriteRule .* / [R=302,L]
</IfModule>
此规则应用于阻止该URL:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^xxx.xxx.xxx.xxx$
RewriteRule ^admin/login/? - [F,NC]
更新:将此代码放在/admin/.htaccess
中:
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^xxx.xxx.xxx.xxx$
RewriteRule ^login/? - [F,NC]
# only allow acces to these urls from white listed IPs
Options +FollowSymlinks
RewriteEngine on
#the urls that should be checked
RewriteCond %{REQUEST_URI} ^(/login|/wp-login.php|/wp-admin).*$
RewriteCond %{REMOTE_ADDR} !=xxx.xxx.xxx.xxx
# or this ip
RewriteCond %{REMOTE_ADDR} !=xxx.xxx.xxx.xxx
# if not fail
RewriteRule ^.*$ / [F]
?
是一个特殊的正则表达式字符,所以你必须用反斜杠来逃避它:?
在.htaccess文件中尝试此操作:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/admin
RewriteCond %{REMOTE_ADDR} !=10.0.0.1
RewriteCond %{REMOTE_ADDR} !=10.0.0.2
RewriteCond %{REMOTE_ADDR} !=10.0.0.3
RewriteRule ^(.*)$ - [R=403,L]
如果网址以/ admin开头且远程地址不是列出的三个地址之一,请以愉快的方式发送浏览器。
为什么不使用Location
?
<Location /admin/login>
Order deny,allow
Deny from all
Allow from xxx.xxx.
Allow from yyy.yyy.
</Location>
以上是关于HOW TO:使用htaccess将url限制为特定的IP的主要内容,如果未能解决你的问题,请参考以下文章
友好的 URL htaccess 重写规则正则表达式 [关闭]
sh 如何使用bash或curl将数据urlencode到URL中 - 来自https://stackoverflow.com/questions/37309551/how-to-urlencode-
How to configure Spring Security to allow Swagger URL to be accessed without authentication