2010-12-01 7 views
12

Ich habe eine Dev-Site eingerichtet und möchte sie mit einem Passwort schützen, sodass nur validierte Besucher die Site anzeigen können. Alles gut und gut. Ich ärgere mich über meine lokale Version und gebe meinen Benutzernamen und mein Passwort ein. Also, ohne die htaccess-Datei zwischen meiner lokalen Kopie und der auf der Dev-Site zu ändern, wie schütze ich die Seite mit einem Passwort, aber erlaube mir den Zugriff, ohne meinen Benutzernamen und mein Passwort eingeben zu müssen?htaccess password protect, aber nicht auf localhost

Antwort

15

So etwas sollte es tun ..

Require valid-user 
Allow from 127.0.0.1 
Satisfy Any 

Von: http://httpd.apache.org/docs/2.0/mod/core.html#satisfy

+2

Well Done That Man. – Wez

+2

Nicht sicher warum, aber wenn ich dies verwendet die Authentifizierung total zusammenbricht und jeder den geschützten Bereich sehen kann ... Ich meine, es funktioniert auf meiner Dev-Seite, wie es sollte, weil meine IP ist 127.0.0.1, aber wenn ich es zu veröffentlichen der Live-Server, es lässt mich immer noch rein ... nicht sicher warum. – SublymeRick

+0

das gleiche Problem hier. Machen Sie den Netzwerkserver geöffnet –

1

Vorausgesetzt, dass Sie das Kennwort auf der Dev-Site eingeben - legen Sie die Auth-Anweisungen in einem VirtualHost auf der Dev-Site statt in der .htaccess-Datei - auf diese Weise wird Ihre Authentifizierung auf einer Server-Ebene statt einem Verzeichnis verarbeitet Niveau.

Auch die meisten modernen Browser wird wahrscheinlich Ihr Passwort speichern für Sie :)

0

Wie here diskutiert Sie allow from nutzen könnten Zugriff von einem bestimmten Host zu ermöglichen.

4

Ich habe eine coole Art heraus Linux von Windows-Passwort-Dateien zu trennen (weil ich in den Fenstern zu entwickeln und dann Freigabe auf einen Linux-Produktionsserver).

Ich schrieb gerade ein PHP-Skript mit phpinfo(); auf unserem lokalen und Prod-Server und fand das Apache-Modul 'mod_win32', um die beiden zu trennen.

<IfModule mod_win32.c> 
    AuthUserFile C:\xampplite\your\windows\path.passwd 
</IfModule> 
<IfModule !mod_win32.c> 
    AuthUserFile "/your/linux/path/.passwd" 
</IfModule> 
AuthName "Please Login" 

RewriteEngine On 
AuthType Basic 
Require valid-user 
0

Seit 2.4 Apache können Sie auch Ihr Passwort-Schutz umgeben von wie diese gegen die HTTP_HOST Umgebungsvariable Überprüfung:

<If "%{HTTP_HOST} != 'localhost'"> 
    # Your password protection code 
</If> 

Siehe auch die Antwort von Mark Fox auf die Frage nach accessing the environment variables.

0

Beispiel für Windows:

AuthType Basic 
AuthName "Password Protected Area" 
AuthUserFile C:/Apache24/htdocs/.htpasswd 
Require valid-user 
Order allow,deny 
Allow from localhost 
Allow from 127.0.0.1 
Satisfy Any