.htaccess - RewriteCond %{REMOTE_ADDR} [IPv4] 阻止捕获 IP 范围?
问题描述
带有 IPv4 的 RewriteCond %{REMOTE_ADDR} 捕获 IP 范围。例子:
RewriteCond %{REMOTE_ADDR} ^123\.45\.67\.89
# catch 123.45.67.89
RewriteCond %{REMOTE_ADDR} ^123\.45\.67\.8
# catch 123.45.67.8[0-9]
# or as omit
RewriteCond %{REMOTE_ADDR} !^123\.45\.67\.89
...
最终抓住它更多。我没有进一步测试。我的实际 IP 是(类似于示例)“123.45.67.89”。
RewriteCond 用于 RewriteRule 将临时重写为 maintenance.php。我插入我的IP。只有我的 IP 不会重写到 maintenance.php。
RewriteCond %{REMOTE_ADDR} !^123\.45\.67\.89
RewriteRule . maintenance.php [QSA,NC,L]
RewriteCond %{REMOTE_ADDR} ^123\.45\.67\.89
RewriteRule . index.php [QSA,NC,L]
将它与 IP 123.45.67.89 一起使用,我就变成了 index.php。将它与 IP 123.45.67.8 一起使用,我就变成了 index.php。将它与 IP 123.45.67.890 一起使用,我就变成了 maintenance.php。我如何防止捕获/省略超过我的 IP 地址?此外,我有动态 IP 地址。我的 IP 可能是 123.45.67.8。
编辑:感谢@anubhava。
解决方案:^123\.45\.67\.89$
解决方案
我的实际 IP 是(类似于)
123.45.67.89
。如何防止捕获/省略超过我的 IP 地址?此外,我有动态 IP 地址。我的IP可能是123.45.67.8
如果您只想匹配单个 IP,那么您将不得不使用硬编码该 IP
RewriteCond %{REMOTE_ADDR} !^123\.45\.67\.89$
请注意,您需要对 IP 地址中的点进行转义,以避免它与任何字符匹配。
你的规则可以是这样的:
RewriteCond %{REMOTE_ADDR} !^123\.45\.67\.89$
RewriteRule . maintenance.php [L]
RewriteRule . index.php [L]
推荐阅读
- node.js - Node.js lazy require module
- x-cart - 如何从 X-Cart 中的数据库重置管理员用户访问权限?
- read-the-docs - 更新 readthedocs 上的分支列表
- java - 一次性登录应用 - FirebaseAuth
- python-3.x - 如何在 x 轴上指定日期以使用 Python 3 制作条形图
- angular - 没有导出成员“SubscriptionLike”
- html - 从谷歌表读取数据在客户端html中全局使用
- css - MaterialUI如何将输入内的文本向右或居中对齐?
- java - 为什么 contains(Object) 在 TreeMap 中是 log(n) 而在 PriorityQueue 中是 O(n),而 PriorityQueue 在内部使用二叉树(二叉堆)?
- autosar - Flexray COM 与应用程序的通信