apache - htaccess - 只允许访问我的 dhcp ip 地址
问题描述
我需要在我的测试服务器上创建一个临时的 .htaccess 文件,这样只有我的公共 dhcp ip 才能访问我的测试站点。
我的 .htaccess 中有三行。
RewriteEngine On
RewriteCond expr "file('%{DOCUMENT_ROOT}/myip') != %{REMOTE_ADDR}"
RewriteRule ^(.*)$ /blackhole2.html [R,L]
第一行读取我写在 /myip 文件中的 php 脚本文件的输出。如果地址与“remote_addr”不匹配,则转发到适当的网页。即:blackhole2.html
看起来如果 IP 地址匹配,我可以访问我的测试站点。但是,如果 ip 地址不匹配,则重写规则会出错并出现 302 循环错误。
我已经尝试了几个标志分隔符等,但现在已经把我的玩具从我的 IT 抽屉里扔了出来。
我忽略了什么,或者不明白还需要什么。谢谢。
解决方案
当 IP 地址不匹配时,这会触发重定向循环,因为重定向的响应/blackhole2.html
被相同的规则捕获/blackhole2.html
并一次又一次地重定向到....
您需要包含/blackhole2.html
请求时的例外情况。
例如:
:
RewriteRule !^blackhole2\.html$ /blackhole2.html [R,L]
或者干脆阻止请求(403 Forbidden)并且不重定向:
:
RewriteRule ^ - [F]
尽管如果您有自定义 403 ,则需要创建一个例外ErrorDocument
。
推荐阅读
- apache - 启动 Apache 后 Docker 容器关闭
- python - 为什么我会收到列表索引错误?
- python - 如何获得不是 HttPretty 中最后一个请求的请求?
- php - 在 php 中设置 cookie 并通过 ajax 运行会话
- compression - `7z` 可以只压缩文件的更新部分而不是压缩完整的更新文件吗?
- android - 从客户端调用云端点库
- c - 将 .txt 文件中的多行数据扫描到结构数组中
- r - 编程包括不等式 (R)
- c++ - Qt中如何隐藏QBarCategoryAxis中的一些类别
- python - Python,将子列表项与同一列表中的其他项进行比较