【问题标题】:allow IPs provided by external url (in json format) in .htaccess允许 .htaccess 中的外部 url(json 格式)提供的 IP
【发布时间】:2017-09-18 12:40:05
【问题描述】:

我什至怀疑它是否可能。我有一个客户的奇怪要求,所以必须这样做。

我有一个允许某些 ips 的网站(ips 是硬编码在 .htaccess 中的)。客户为我提供了一个 url,其中一些 ips 以 json 格式列出。我希望这些 ip 应该被允许访问该网站。 (url 上列出的 Ips 是动态的,所以我不能在 .htaccess 中使用它们)。有谁知道如何实现这一目标。

我知道我可以在 htaccess 中使用 php 文件(索引)并在其中编写代码来读取 ips,但优先级是仅通过 .htaccess 文件完成。

提前致谢。

需要一点帮助。

我在 httpd 文件中创建了 rewriteMap。 RewriteMap accessmap "txt:E:\htdocs\myfolder\map.txt"

我的 map.txt 有以下条目。

127.0.0.11  allow
127.0.0.1  allow
127.0.0.12  deny

我将这些条目添加到 htacces 文件中

RewriteCond ${accessmap:%{REMOTE_ADDR}} allow [NC]
RewriteRule ^(.*)$ https://www.exampleweb.com/$1 [L,R=302]

现在,例如,我的地图文件中有 127.0.0.1 作为允许,因此应该允许它访问该站点。如果我想以任何其他 ip 访问网站 130.0.0.11(不在地图文件中)应该重定向到这个链接https://www.exampleweb.com

我对htaccess了解不多,看不懂怎么写 rewriteRule 和重写条件。请帮忙。 注意:ips只是举例,实际ips会有所不同。

【问题讨论】:

    标签: php apache .htaccess


    【解决方案1】:

    .htaccess 文件不断被 Apache HTTPD 服务器读取。您可以根据您的需要通过脚本或其他方式更改其中的特定授权指令,新的授权指令将立即应用。

    【讨论】:

    • 您好,感谢您的帮助。我是通过 rewriteMap 来做的。我已经编辑了问题并添加了我当前的问题状态。请通过它,如果你能帮助我,那就太好了。谢谢。
    • 编辑的文本将从..开始。需要一点帮助
    【解决方案2】:
    1. 创建一个重写映射。在 Apache 配置文件 (httpd.conf) 或虚拟主机文件中添加以下代码。

      RewriteMap accessmap "txt:file/path/to/map.txt"

      注意: RewriteMap 指令不能添加到 .htaccess 文件或 Directory 部分中。 [来源:Using rewrite map]

    2. 然后在您的 .htaccess 文件中添加以下代码

      RewriteCond ${accessmap:%{REMOTE_ADDR}} !^allow

      重写规则 ^(.)$ - [F,L]*

      这将允许 map.txt 文件中列出的具有 allow 值的 IP 地址访问您的站点。否则,用户将看到 403 禁止错误。

    【讨论】:

    • 它对我有用。你救了我的命。我还有一个附加条件,我想重定向一些 ips 和其他我想拒绝的。我怎样才能做到这一点?
    猜你喜欢
    • 1970-01-01
    • 2012-08-03
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 1970-01-01
    • 2011-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多