有人可以告訴我如何把下面的IP範圍(屬於Cloudfront)在mod_rewrite? 我期待example.com的非www請求重定向到www.example.com而不是重定向從IP未來任何IP地址範圍如下:Apache重寫子網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對正則表達式和創建以下條目在我的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地址,它可以毫無問題地工作。
有人可以檢查,看看我做錯了什麼?
謝謝! -Ma
感謝您的評論。我有點困惑如何創建CIDR的正則表達式版本。對於CIDR 54.239.128.0/18,以下內容是否準確:RewriteCond%{HTTP:X-FORWARDED-FOR}!= 54 \ .239 \ .128 \。[1-8] {1,3}? –
謝謝。我無法理解這些正則表達式是如何產生的。這很有幫助。 –
不客氣。這些是由一位有着很酷工具但不喜歡分享的同事製作的,儘管他喜歡炫耀他們可以做什麼。 :) – zx81