【发布时间】:2017-09-20 15:26:30
【问题描述】:
谁能告诉我如何将以下 IP 范围(属于 Cloudfront)放入 mod_rewrite 中? 我希望将 example.com 的非 www 请求重定向到 www.example.com 但不重定向来自以下 IP 范围的任何 IP 地址:
54.192.0.0/16
54.230.0.0/16
54.239.128.0/18
54.239.192.0/19
54.240.128.0/18
204.246.164.0/22
204.246.168.0/22
204.246.174.0/23
204.246.176.0/20
205.251.192.0/19
205.251.249.0/24
205.251.250.0/23
205.251.252.0/23
205.251.254.0/24
216.137.32.0/19
我使用了一个名为 rgxg 的工具将上述所有内容从 CIDR 转换为 Regex,并在我的 httpd.conf 中创建了以下条目:
RewriteCond %{HTTP_HOST} ^example\.com$ [NC,OR]
RewriteCond %{HTTP:X-FORWARDED-FOR} !54\.192(\.(25[0-5]|2[0-4][0-9]||1[0-9]{2}|[1-9]?[0-9])){2}
RewriteRule ^/(.*)?$ http://www.example.com/$1 [R=301,NC,NE,L]
我已经在我的 RewriteCond 条目中添加了所有 IP 范围,但只包括了第一个,因为我不想让这篇文章变得混乱。该规则似乎不起作用。如果我只输入一个 IP 地址,它就可以正常工作。
有人可以检查一下我做错了什么吗?
谢谢! -马
【问题讨论】:
标签: regex apache mod-rewrite rewrite