Erst RewriteCond dann AuthType Basic

satriani

Registered User
Hallo,

ich habe in meiner httpd.conf folgendes:
Code:
<Directory "/srv/www/vhosts/web-site.de/httpdocs/abc">
Options +FollowSymLinks -Indexes
AllowOverride All
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^12.34.
RewriteRule ^(.*) http://www.web-site.de/gesperrt.html$1 [L,R=301]
Order allow,deny
Allow from all
</Directory>

im Verzeichnis /srv/www/vhosts/web-site.de/httpdocs/abc/ liegt .htaccess mit htpasswd für Benutzernamen und Passwort.

Wenn ich die Seite aufrufe und ins Ordner abc gehe, wird zuerst nach Benutzernamen und Passwort gefragt, erfolgt dieses dann wird der Besucher nach IP gefiltert.

Meine Frage: Was kann man machen, damit es zuerst die IP gefiltert wird und erst wenn die IP durchkommt, nach dem Benutzernamen und Passwort gefragt?

Danke im Voraus.

Gruß Alex.
 
Wenn du ein "Deny 12.34." anstatt deiner Rewrite Regeln verwendest hast das gewünschte Verhalten und es wird sogar automatisch die richtige Fehlermeldung (401 bzw 403) ausgegeben.
 
Code:
<Directory "/srv/www/vhosts/web-site.de/httpdocs/abc">
RewriteEngine on
RewriteCond %{REMOTE_ADDR} !^12.34.
RewriteRule ^(.*) http://www.web-site.de/gesperrt.html$1 [L,R=301]
RewriteRule ^/abc(.*) /def$1 
</Directory>
<Directory "/srv/www/vhosts/web-site.de/httpdocs/def">
Deny 12.34.
</Directory>
Der Content muß dann natürlich nach /def, nach außen hin bleibt /abc sichtbar. Nicht wirklich elegant aber sollte so oder so ähnlich funktionieren.
Wenn du nicht Teile der URL erhalten mußt(also das $1) wäre ein "ErrorDocument 403 http://www.web-site.de/gesperrt.html" in Kombination mit meinem ersten Vorschlag besser.
 
Back
Top