You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by Michael Renner <mi...@gmx.de> on 2011/06/17 19:13:42 UTC

RewriteCond mit UND und ODER

Moin,

ich brüte über ein Rewrite-Konstrukt bzw. die Condition dafür. Sie soll 
folgendes machen:

der Zugriff auf ein bestimmtes Verzeichnis soll nur von 3 bestimmten IPs 
erlaubt sein. Und auch das nur, wenn ein bestimmter Header gesetzt ist (der 
kommt von der SSL-Terminierung). Alle anderen sollen umgeleitet werden.

# /foobarbaz only for us and 2 others
    RewriteCond %{HTTP:ENCRYPT} !^true          [OR]
    RewriteCond %{REMOTE_ADD} !^(127.0.0.1|192.168.0.1|10.10.10.10)$
    RewriteRule ^/foobarbaz/(.*)$  http://www.server.tld        [R=301,L]


Es liegt an der ODER-Verkettung der IP-Adressen. Denn mit nur einer 
funktioniert es.
    #RewriteCond %{HTTP:ENCRYPT} !^true
    RewriteCond %{REMOTE_ADDR} ! ^127.0.0.1$
    RewriteRule ^/foobarbaz/(.*)$  http://www.server.tld          [R=301,L]

Wo ist mein Denkfehler? Die Punkte der IP-Adressen zu maskieren brachte nicht 
den gewünschten Erfolg.

Dankbar für Hinweise
-- 
|Michael Renner      E-mail: michael.renner@gmx.de  |
|D-81541 Munich      Germany        ICQ: #112280325 |
|Germany             Don't drink as root!      ESC:wq

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------


Re: RewriteCond mit UND und ODER

Posted by Bjoern Hoehrmann <de...@gmx.net>.
* Michael Renner wrote:
>der Zugriff auf ein bestimmtes Verzeichnis soll nur von 3 bestimmten IPs 
>erlaubt sein. Und auch das nur, wenn ein bestimmter Header gesetzt ist (der 
>kommt von der SSL-Terminierung). Alle anderen sollen umgeleitet werden.
>
># /foobarbaz only for us and 2 others
>    RewriteCond %{HTTP:ENCRYPT} !^true          [OR]
>    RewriteCond %{REMOTE_ADD} !^(127.0.0.1|192.168.0.1|10.10.10.10)$
>    RewriteRule ^/foobarbaz/(.*)$  http://www.server.tld        [R=301,L]

"REMOTE_ADD" ist falsch geschrieben, und die Punkte im regulären
Ausdruck müssen maskiert werden, sonst stehen die für ein beliebiges
Zeichen.

>Es liegt an der ODER-Verkettung der IP-Adressen. Denn mit nur einer 
>funktioniert es.
>    #RewriteCond %{HTTP:ENCRYPT} !^true

(Wenn das einfach nur auskommentiert wurde, dann würde ich hier auch
ein "[OR]" erwarten).
-- 
Björn Höhrmann · mailto:bjoern@hoehrmann.de · http://bjoern.hoehrmann.de
Am Badedeich 7 · Telefon: +49(0)160/4415681 · http://www.bjoernsworld.de
25899 Dagebüll · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/ 

--------------------------------------------------------------------------
                Apache HTTP Server Mailing List "users-de" 
      unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
           sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------