Zur Navigation

LU IP redirect via .htaccess

1 tml1922

Hallo, ich benötige eine weiterleitung von allen Besuchern aus Luxemburg.

Nur zur Info: Es geht um einen Shop in Luxemburg nahe der Grenze zu D.
Der Shop hat eine lu. Domain - aber 98% der Besucher (Shop sowie Internetseite) kommen aus Deutschland. Da in Lux. Tabekwerbung verboten ist dürfen also nur Besucher aus D auf die Seite zugreifen - die anderen sollen auf eine andrere (unter) Seite weitergeleitet werden.

Redirect via GEOIp funktioniert nicht auf dem Server - hoster ist variomedia.de ( hier kann ich nichts ändern)

Via rewrite funktioniert es aber nur wenn ich einzelne IPs angebe.

 RewriteEngine On
    RewriteBase /
    RewriteCond %{REMOTE_ADDR} ^88.207.128.0
    RewriteRule ^(.*)$ http://www.other-website.lu/in/$1 [L]


Wenn ich mehrere angebe klappt nichts

  RewriteEngine On
    RewriteBase /
    RewriteCond %{REMOTE_ADDR} ^88.207.128.0 [OR]
    RewriteCond %{REMOTE_ADDR} ^5.22.148.32/27 [OR]
    RewriteCond %{REMOTE_ADDR} ^5.23.10.0/24 [OR]
    RewriteCond %{REMOTE_ADDR} ^5.63.132.0/22 [OR]
    RewriteCond %{REMOTE_ADDR} ^5.149.112.0/21 [OR]
    RewriteCond %{REMOTE_ADDR} ^5.157.41.0/24 [OR]
    RewriteCond %{REMOTE_ADDR} ^5.157.43.0/24
    RewriteRule ^(.*)$ http://www.other-website.lu/in/$1 [L]


Die Luxemburger IPs habe ich in folgendem "Format" vorliegen:
5.22.148.32/27
5.23.10.0/24
5.63.132.0/22
5.149.112.0/21
5.153.43.88/29
5.157.40.0/24
5.157.41.0/24
5.157.42.0/24
5.157.43.0/24
31.6.52.0/24
31.6.56.0/24
31.22.120.0/21
31.172.144.0/21
31.187.92.0/24
31.204.88.0/21
.
.
.

Lange Rede kurze Sinn -
wie muß ich die Ips in der RewriteCond anordnen damit es klappt?

Vielen Dank.

p.s. wie unschwer zu erkennen bin ich kein Profi





20.04.2018 16:03

2 Jörg

5.22.148.32/27

Diese Angabe mit IP-Adresse und Netzmaske entspricht der sogenannten CIDR-Notation. mod_rewrite kann diese nicht von sich aus auflösen

Welche Version des Apache Webserver wird verwendet? Ab Apache 2.4 könnte mod_rewrite die CIDR-Notation vielleicht mithilfe von Expressions verarbeiten:

RewriteCond expr "-R '5.22.148.32/27'" [OR]

Ich habe es selbst noch nicht ausprobiert, es entspricht dem zweiten Lösungsweg auf stackoverflow:

https://stackoverflow.com/questions/11653461/redirect-a-range-of-ips-using-rewritecond

Der erste Lösungsweg funktioniert auch für Apache 2.2 ist aber wesentlich aufwendiger, weil man alle CIDR-Notationen manuell in ein oder mehrere Muster übersetzen muss, welche von mod_rewrite verarbeitet werden können

20.04.2018 16:38 | geändert: 20.04.2018 16:39

3 tml1922

Danke für die schnelle und hilfreiche Antwort!

Ich habe die 1. Variante schon getestet.

RewriteEngine On
RewriteBase /
RewriteCond expr "-R '88.202.105.240/28'" [OR]
RewriteCond expr "-R '88.202.109.240/28'" [OR]
RewriteCond expr "-R '88.207.128.0/17'"

RewriteRule ^(.*)$ http://other-website.lu/$1 [L]

Es klappt! Zumindest mit den paar von mir getesteten IPs.

Ich werde mich nun mal ranmachen alle einzugeben...und mich dann wieder melden.

HIerzu noch die Frage: Gibt es eine Seite oder Programm die das
Eintragen der IPs automatisiert erledigt?

21.04.2018 15:27

4 Jörg

Was meinst du mit automatisiert erledigen? dass die IP-Adressen in der Liste umgewandelt werden in die RewriteCond-Direktiven? das könnte man vielleicht mit einem Editor, der Suchen und Ersetzen mit regulären Ausdrücken beherrscht.

21.04.2018 17:13

5 tml1922

Hallo, ja genau sowas habe ich gemeint.

Ich habe alle IPs eingetragen - es klappt einwandfrei.

Danke für Deine Anleitung die CIDR-Notation mithilfe von Expressions verarbeiten!

RewriteCond expr "-R '5.22.148.32/27'" [OR]

Danke für Deine Hilfe!

02.05.2018 17:26

Beitrag schreiben (als Gast)





[BBCode-Hilfe]