Kann mir bitte jemand sagen, wie die folgenden IP-Bereiche (gehört zu Cloudfront) in einem mod_rewrite? Ich suche die nicht-www-Anfragen für example.com zu www.example.com, aber nicht umleiten jede IP-Adresse von IP kommenden Bereiche unterhalb zu umleiten:Apache überschreiben Subnet IP-Bereich
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
ich ein Werkzeug verwendet genannt rgxg zu konvertieren alle oben von CIDR und Regex erstellt folgende Einträge in meinem 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]
ich alle IP-Bereiche in meinem RewriteCond Einträge hinzugefügt haben, aber enthalten nur die erste, da ich nicht wollte Durcheinander diesen Beitrag. Die Regel scheint nicht zu funktionieren. Wenn ich nur eine einzige IP-Adresse einstelle, funktioniert das ohne Probleme.
Kann jemand bitte überprüfen und sehen, was ich falsch mache?
Danke! -Ma
Vielen Dank für Ihren Kommentar. Ich bin ein wenig verwirrt, wie man die Regex-Version eines CIDR erstellt. Wäre das Folgende für CIDR 54.239.128.0/18 korrekt: RewriteCond% {HTTP: X-FORWARDED-FOR}! = 54 \ .239 \ .128 \. [1-8] {1,3}? –
Danke. Ich kann meinen Kopf nicht darum wickeln, wie diese Regex produziert werden. Dies ist hilfreich. –
Gern geschehen.Diese wurden von einem Kollegen produziert, der coole Werkzeuge hat, diese aber nicht teilen möchte, obwohl er gerne darüber aufzeigt, was er tun kann. :) – zx81