Wie verwende ich einen Relativen Pfad mit AuthUserFile in htaccess?
Habe ich eine .htaccess, die Standardauthentifizierung verwendet. Es scheint der Pfad zu der .htpasswd-Datei nicht relativ zu der htaccess-Datei, sondern an der server-config.
So, obwohl ich die .htaccess und .htpasswd Dateien in das gleiche Verzeichnis, so funktioniert das nicht:
AuthType Basic
AuthName "Private Login"
AuthUserFile .htpasswd
Require valid-user
Jedoch, es funktioniert, wenn ich die AuthUserFile verwenden Sie den absoluten Pfad:
AuthType Basic
AuthName "Private Login"
AuthUserFile "/home/user/public_html/mydir/.htpasswd"
Require valid-user
Aber ich würde lieber etwas mehr mobile als ich diese auf mehreren Websites in verschiedenen Bereichen. Ich habe gesucht im Internet aber habe keine Auflösung. Ist es möglich, einen relativen Pfad oder Variablen wie %{DOCUMENT_ROOT}
?
InformationsquelleAutor der Frage DssTrainer | 2011-05-24
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ist es nicht möglich, relative Pfade für AuthUserFile:
Haben Sie zu akzeptieren und umgehen diese Einschränkung.
Verwenden wir
IfDefine
zusammen mit einem apache2 Kommandozeilenparameter:.htaccess
(geeignet sowohl für Entwicklungs-und live-Systemen):Entwicklung server-Konfiguration (Debian)
Fügen Sie den folgenden, um
/etc/apache2/envvars
:Starten Sie Ihren apache danach und du wirst eine Passwort-Eingabeaufforderung nur, wenn Sie nicht auf dem Entwicklungs-server.
Können Sie natürlich weitere hinzufügen, IfDefine für die Entwicklung server, kopieren Sie einfach den block und entfernen Sie die
!
.InformationsquelleAutor der Antwort cweiske
1) Beachten Sie, dass es als unsicher zu haben, die
.htpasswd
- Datei unter dem root-server.2) Die docs sagen, dass dies über relative Pfade, so sieht es aus, sind Sie aus Glück heraus:
3), Während die Antworten, die Empfehlung der Verwendung der Umgebungsvariablen arbeiten völlig in Ordnung, ich würde es bevorzugen, setzen Sie einen Platzhalter in der
.htaccess
- Datei oder verschiedene Versionen in meiner Codebasis, und haben Sie den deployment-Prozess es einrichten (ich. e. ersetzen Sie Platzhalter, oder umbenennen /verschieben Sie die entsprechende Datei).Auf Java Projekte, ich benutze Maven zu tun, diese Art von Arbeit, auf, sagen wir, PHP-Projekte, möchte ich einen build.sh und /oder install.sh shell-Skript, dass die Melodien die bereitgestellten Dateien an Ihre Umwelt. Das entkoppelt Sie Ihre Codebasis von den Besonderheiten seiner Zielumgebung (ich. e. seine Umwelt-Variablen und Konfigurations-Parametern). Im Allgemeinen sollte die Anwendung an die Umgebung anzupassen, wenn man es anders herum, könnten Sie auf Probleme stoßen, sobald die Umwelt hat auch zu sorgen, für verschiedene Anwendungen, oder für völlig unabhängig von, system-spezifischen Anforderungen.
InformationsquelleAutor der Antwort Hanno Fietz
können Sie Ihren Auth-Einstellungen in einer Umgebung. Wie:
Den Auth funktioniert, aber ich konnte nicht meine Umgebung wirklich läuft.
InformationsquelleAutor der Antwort digitaldonkey
Nur für den Fall, dass die Menschen suchen für die Lösung dieses Problems:
InformationsquelleAutor der Antwort mask8
.htpasswd erfordert vollständige absolute Pfad von der absoluten Stamm des
server.
Bitte Holen Sie die vollständige absolute Pfad zu der Datei echo
echo $_SERVER['DOCUMENT_ROOT'];
.hier funktioniert basic-auth .htaccess-script.
Vor dem login
Afetr Login
InformationsquelleAutor der Antwort muni
Wenn Sie versuchen, zu verwenden XAMPP mit Windows und verwenden möchten .htaccess-Datei auf einem live-server und auch die Entwicklung auf einem XAMPP Entwicklung der Maschine die folgenden funktioniert Super!
1) Nach einer frischen Installation von XAMPP stellen Sie sicher, dass Apache als Dienst installiert ist.
2) Wenn Apache als Dienst installiert fügen Sie eine neue Umgebungsvariable wie eine fahne.
3) Starten Sie Den Apache
4) Erstellen Sie Ihre .htaccess-Datei mit folgenden Informationen...
Zu erklären, das obige Skript, hier sind ein paar Noten...
5) Erstellen Sie Ihre Passwort-Datei (in diesem Fall benannt .htpasswd) mit den folgenden Informationen...
Einige Dinge zu beachten...
InformationsquelleAutor der Antwort Arvo Bowen
Nehmen wir ein Beispiel.
Ihre Anwendung befindet sich in /var/www/myApp auf einige Linux-server
.htaccess : /var/www/myApp/.htaccess
htpasswdApp : /var/www/myApp/htpasswdApp. (Sie sind frei, verwenden Sie einen beliebigen Namen für .htpasswd - Datei)
Relative Pfad in .htaccess:
Aber es wird nach Dateien in server_root - Verzeichnis. Nicht in document_root.
In out Fall, wenn die Anwendung befindet sich bei /var/www/myApp :
document_root ist /var/www/myApp
server_root ist /etc/apache2 //(nur in unserem Beispiel, da wir mit dem linux-server)
Können Sie definieren es in der apache-Konfigurationsdatei ( /etc/apache2/apache2.conf), aber ich denke, es ist eine schlechte Idee.
Also um einen relativen Pfad in Ihrer /var/www/myApp/.htaccess definieren Sie die Passwort-Datei in Ihr server_root.
Ziehe ich es durch follow-Befehl:
Sie sind frei zu kopieren, mein Befehl, verwenden Sie einen hard link statt des symbols ein,oder kopieren Sie eine Datei auf Ihrem server_root.
InformationsquelleAutor der Antwort Sild
oder wenn Sie zu entwickeln, die auf localhost (nur für apache 2.4+):
InformationsquelleAutor der Antwort amxm
Ich weiß, das ist eine alte Frage, aber ich habe gerade gesucht, für die gleiche Sache-und wahrscheinlich gibt es viele andere auf der Suche für eine schnelle, mobile Lösung. Hier ist, was ich schließlich mit zu kommen:
InformationsquelleAutor der Antwort ovi