[gelöst] Error 404 beim Passtwortschützen von Unterverzeichnissen via .htaccess
am 17.12.2013 - 15:33 Uhr in
Hallo zusammen,
wie ihr aus dem Titel entnehmen könnt, habe ich Probleme, eine Passwortsicherung von Dateien in einem bestimmten Ordner via .htaccess zu realisieren.
Leider bekomme ich nach der korrekten Passworteingabe den Fehler 404 (Die Datei ist sicher vorhanden). Ich habe einige Lösungsansätze im Web ausprobiert, es hat allerdings nichts geholfen.
Ich habe die Dateien wie in folgenden Beispiel angelegt:
http://www.youtube.com/watch?v=S-EYoLyVXWQ
Außerdem habe ich einige Guides ausprobiert um mein Problem zu lösen.
(Leider finde ich die entsprechende Seite aufgrund von Komplikationen nicht mehr, glücklicherweise habe ich den Inhalt aber als Text Datei gespeichert (dieser sollte, falls der Guide funktioniert würde, in die Dokumentation kommen.))
Ihr findet den Guide und die benötigten Datein im Anhang.
(Die Drupal eigene .htaccess Datei ist bis auf folgende Änderung:
ErrorDocument 401 /401.html
Gleich geblieben, und deshalb nicht im Anhang.
Ich hoffe ihr könnt mir weiter helfen.
MfG
Twinhand
Anhang | Größe |
---|---|
htpasswd.png | 9.62 KB |
htaccess.png | 62.57 KB |
401html.png | 20.16 KB |
Guide.txt | 5.92 KB |
- Anmelden oder Registrieren um Kommentare zu schreiben
also die ordner verwaltet
am 17.12.2013 - 16:19 Uhr
also die ordner verwaltet drupal ja auch. da soltlen keine passwörter rein
Innerhalb der Drupal
am 17.12.2013 - 22:59 Uhr
Innerhalb der Drupal Verzeichnisstruktur bringt Drupal auch seine Verzeichnisrechte in Ordnung, verwaltet also auch die Ordner, wie caw schon geschrieben hat.
Also würde ich es über die Drupal Zugriffsrechte regeln, das wäre dann insofern auch eleganter, dass kein user noch ein extra Passwort für den Zugriff braucht, wenn sie/er die Rechte hat.
Wenn du es dennoch mit htaccess + htpasswort machen willst, stelle einfach den Ordner außerhalb der Drupal Installation und weise ihm eine Subdomain zu.
Vielleicht noch ein
am 17.12.2013 - 23:00 Uhr
Vielleicht noch ein interessanter Thread dazu: http://www.drupalcenter.de/node/48452
"non-drupal-folder"
am 18.12.2013 - 01:37 Uhr
Hallo,
aus dem "Guide" (ich nehme an, das ist dieser "http://www.thesitewizard.com/apache/access-non-drupal-folders.shtml") schließe ich, daß es darum geht, einen "non-drupal-folder" zu schützen, der unterhalb des Drupal-Verzeichnisses und somit auch von dessen .htaccess-Anweisungen betroffen ist?
Insgesamt sollte Drupal aber mit einem "non-drupal-folder" nicht mehr viel zu tun haben und es macht die kopierte Files-Handler Anweisung in der zweiten .htaccess-Datei somit auch kein Sinn. Insbesondere kann Drupal ohne weiteres auch nicht dabei helfen, irgendwelche Files in diesem Folder zu beschützen. Da gäbe es zwar komplexe Wege die hier wahrscheinlich nicht relevant sind. Es geht denke ich schlicht und einfach nur darum innerhalb eines Ordners den Zugriff auf Dateien ganz außerhalb der Drupal-Welt per separatem Passwort zu sichern.
Ich habe die Tipps der Anleitung lokal in meinem MAMP-Testsystem nachvollzogen und festgestellt, daß es dort z.B. keine error 401 Problematik gibt, das heißt auch die Default-Anzeige "Authorization Required" funktioniert. Allerdings habe ich es da auch nicht geschafft im Unterordner eine alternative 404-Anweisung zu setzen. Das heißt, wenn geschütztes File nicht vorhanden, dann Fehlermeldung über Drupal. Ich würde im Moment raten, daß in diesem Fall der Fehler woanders liegt.
Ich stehe ab und zu auch vor einem "Seh den Wald vor lauter Bäumen nicht"-Problem. Die Aussage "Die Datei ist sicher vorhanden" würde ich noch mal überprüfen durch Entfernen des Passwort-Schutzes und dem Aufruf der Datei im Browser. Denn daß man auch Dateien direkt in einem Drupal-Verzeichnis aufrufen kann, kann man immer testen, indem man mal versucht, die robots.txt aufzurufen.
Viel Erfolg bei der weiteren Problem-Suche.
wer an Drupal vorbei arbeiten will
am 18.12.2013 - 08:36 Uhr
sollte dies auch außerhalb des Drupalbaumes tun.
Es spricht aus technischer Sicht nichts dagagen, wenn du einen Zweig Drupal mit all seinen Verzeichnissen hast, und parallel ein eigenes Verzeichnis mit einer anderen Installation.
Wenn die Rechte passen, kannst du auf diesen Baum auch aus Drupal heraus zugreifen.
Innerhalb von Drupal mit drupalfremden Konstrukten zu arbeiten, kann nur schädlich sein.
Hallo zusammen, danke für die
am 18.12.2013 - 10:43 Uhr
Hallo zusammen, danke für die raschen Antworten. Ich sehe, dass euch die Vorgehensweise von mir nichtg anz einleuchtet.
Und zwar ist meine Aufgabe Dateien auf der Webseite per Passwort zu schützen (auch die direkten URLs). Das ganze soll aber OHNE die Benutzerverwaltung geschehen.
Deshalb habe ich mir gedacht, dass ich das ganz einfach mit einer .htaccess /. htpasswd Kombination lösen könnte. Da es viele verschiedene Veranstaltungen gibt, sollten die Dateien in einzelne Ordner untergliedert und mit unterschiedlichen Passwörtern geschützt werden. Somit fiel die Möglichkeit das Upload Modul zu nutzen aus, und ich dachte mir, dass ich die Dateien einfach direkt in das passende Verzeichnis hochlade (in diesem Fall /var/www/drupal/default/files/protected-files) und diese dann per HTML in die eigentliche Seite einbinde. Mir selbst erscheint diese Lösun mehr als dreckig, ich habe eine keine andere Lösung gefunden, die den Zugriff auf die Dateien über die URL ebenfalls schütz und die Benutzerverwaltung auslässt.
Fällt euch ein anderer Lösungsansatz ein, bzw. wo das Problem bei der Lösung liegen könnte.
@Carsten Logemann tatsächlich findet der Browser die Datei über die Drupal URL auch ohne die .htaccess nicht. Habt ihr eine Idee woran das liegen könnte?
Ich danke euch schonmal für eure Hilfe.
MfG
Twinhand
Es ist nicht automatisch schädlich, nur komplizierter
am 18.12.2013 - 10:53 Uhr
Innerhalb von Drupal mit drupalfremden Konstrukten zu arbeiten, kann nur schädlich sein.
Es bringt einige Schwierigkeiten mit sich, die man dauerhaft bearbeiten muss. Aber diese absolute Aussage passt zumindest nicht zu meinen Erfahrungen. Zunächst mal gibt es Anforderungen an Projekten, bei denen Fremd-Technologien aus unterschiedlichen gründen neben oder mit Drupal zusammen funktionieren müssen. Wenn man das richtig angeht, ist dies auch problemlos und sicher möglich. Nach Möglichkeit sollte man z.B. auch mit Aliasen in der Server-Konfiguration arbeiten, mit denen man die Drupal-Fremden Ordner außerhalb des Webroots belassen kann.
Insbesondere der vorliegende Fall eines speziellen Ordners mit Verzeichnisschutz ist vorteilhaft, wenn man z.B. große Dateien in ein Webverzeichnis bekommen möchte z.B. per Webdav-Modul des Apache-Webservers und nicht per PHP aufgrund der Probleme, die PHP da mit sich bringt.
Drupal kann zwar sehr viel, aber nicht alles, zumindest nicht allein. Dann ist es wichtig, Drupal zum Zusammenspiel mit anderen Technologien zu bewegen oder Drupal fällt ganz weg für einige Situationen, was ich tunlichst zu vermeiden versuche.
Natürlich kann man NEBEN Drupal
am 18.12.2013 - 11:07 Uhr
andere Kosntrukte betreiben.
Innerhalb der Drupal-Verzeichnisstruktur führt das aber mit großer Wahrscheilichkeit zu Problemen.
Wenn man genau weiß, was man tut, weil man auch die Drupalvoraussetzungen etc. sehr gut kennt, kann man natürlich auch die Drupalstruktur nutzen.
Um etwas parallel zu betreiben, sollte man aber parallel laufen.
Eine zusätzliche Zugangsregelung auf Datein über .htaccess - .htpasswd etc. erfordert zusätzlich die Pflege dieser Konstrukte.
Inwieweit das sinnvoll ist, muss im Einzelfall geklärt werden.
Solche Dateien zwischen die Drupalinstallation zu streuen, ist jedoch unsinnig und kann die Funktionalität Drupals beeinträchtigen.
Es muss dem Kunden klar sein, dass dies mit Drupal nichts zu tun hat, und gesondert gepflegt werden muss.
Auch ist eine spätere Integration nur mit zusätzlichem Aufwand möglich.
Ich fasse mal zusammen. Also
am 18.12.2013 - 11:43 Uhr
Ich fasse mal zusammen. Also wenn ich eine wie oben beschrieben Lösung vornehmen möchte, sollte ich die Dateien außerhalb der Drupal Installation lagern. Muss dies von einer bestimmten Application getan werden, oder reicht es eine Ordnersturktur in dem Verzeichnis /var/www/ anzulegen und diese Dateien dann per Drupal aufzurufen (inklusive der Passwortsicherung per .htaccess). Wie kann ich jetzt aber Drupal von den Dateien berichten bzw diese einbinden? Einfach per in HTML eingebetteter URL oder gibt es da andere Wege?
Falls jemand eine andere Lösung vorschlägt, bin ich dieser auch nicht abgeneigt.
MfG
Twinhand
Wie gesagt,du kannst eine
am 18.12.2013 - 11:57 Uhr
Wie gesagt,du kannst eine Subdomain anlegen, z.B. files.domainname.de und die auf den Ordner files (der irgendwo ausserhalb von Drupal unter /var/www/ liegt) verweisen. Darin dann beliebige Unterordner mit beliebigen htaccess PWs schützen. Hier noch ein nettes Tool zum schnellen Erstellen eines htaccess Verzeichnisschutzes: xssen > http://www.web266.de/tutorials/wordpress/webmaster-tools/zugriffs-schutz...
Wie kann ich jetzt aber Drupal von den Dateien berichten bzw diese einbinden? Einfach per in HTML eingebetteter URL oder gibt es da andere Wege?
Ja, einfach Links auf die Datei in einem Drupal node manuell einsetzen oder, wenn du die Links über Drupal-Felder einsetzen willst, nutze https://drupal.org/project/link
Beste Grüße
Wenn es möglich ist, die
am 18.12.2013 - 14:27 Uhr
Wenn es möglich ist, die Aufgabe zu trennen z.B. mit Subdomain umso besser, wenn nicht muss es irgendwie kombiniert werden. Man sollte aber darauf achten, daß in manchen Hosting-Pakten die Subdomain-Strukturen auch im Webroot des Haup-Paketes untergebracht werden und dabei dann teilweise Sicherhistlücken erst entstehen können.
Und zwar ist meine Aufgabe Dateien auf der Webseite per Passwort zu schützen (auch die direkten URLs). Das ganze soll aber OHNE die Benutzerverwaltung geschehen.
Dazu ist die gewählte Strategie meiner Ansicht schon die Richtige. Daß aber die Dateien zur Zeit auch ohne Passwort-Schutz nicht abrufbar sind zeigt auf ganz andere Probleme, die von mir so aus der Entfernung nicht so leicht analysierbar sind. In jedem Fall haben wir es hier mit Konfigurationen zu tun, die mehr mit dem Webserver als mit dem normalen Drupal-Betrieb zu tun haben, ganz unabhängig davon, ob der Ordner direkt im Webroot liegt (dort wo auch die index.php von Drupal liegt) oder ein Ordner per Alias eingebunden wird. Vor allem sollte man wissen, daß die Steuerung des Webservers per .htaccess-Datei nur soweit funktioniert wie die globale Server-Konfiguration (in der Regel des Apache) dies zulässt. Hier mag z.B. auch eine Ursache des Problems liegen. Vor allem haben wir es mit einem Bereich zu tun, der sehr abhängig von der Serverumgebung ist, auf die man im Managed Hosting wenig Einfluss hat bzw. der Hoster zu Recht auch keinen Einfluß gewährt. Dies schränkt dann die Möglichkeiten ein. So ist z.B. die von mir vorgeschlagene Alias-Konfiguration per htaccess gar nicht möglich und erfordert auf einem Apache neben dem entsprechen Apache Modul auch tiefer gehenden Konfigurationszugang z.B. beim virtuellen Host und damit wären wir ein einem sehr sensiblen Bereich der Server-Konfiguration angelangt, der ein spezielles Know How in diesem Bereich erfordert: http://httpd.apache.org/docs/2.4/mod/mod_alias.html
Somit sind wir wieder beim Ordner innhalb des Webroots ...
Ich würde erstmal empfehlen, die Strategie in anderen Server-Umgebungen zu testen. Je nach Hoster sind die Konfigurationsmöglichkeiten oft auch vom jeweiligen Paket abhängig. Das kann auch schnell dazu führen, daß man das Paket wechseln muß unter Umständen auch zu einem Anbieter mit mehr Möglichkeiten. Und wenn man ultimative Flexibilität benötigt gibt es noch so genannte Root-Systeme, die aber von einem Experten betreut werden sollten, die das z.T. auch pauschal anbieten. Der monatliche Kosten-Unterschied zum einfachen Hosting-Paket ist dann aber signifikant höher.
Bezüglich des Sinns eines separatem Upload-Ordners Ordners und des Zugangs zu den dort zugänglichen Dateien von Drupal aus verweise ich auf meinen gestrigen Kommentar in einem anderen Thread: http://www.drupalcenter.de/node/48498#comment-172655
Update: Danke schonmal für
am 18.12.2013 - 15:39 Uhr
Update: Danke schonmal für eure erneuten Zahlreichen Meinung. Mein Cheff kam gerade zu mir und sagte das er die sub-domain Lösung nicht möchte.
@CarstenLogemann: Die Webseite wird momentan in einer VM gestestet und erst auf den eigentlichen Server hochgeladen, wenn sie vollendet ist. Welche Konfiguration könnte wohl SPEZIEL DIESEN Ordner blockieren (andere Dateien aus anderen Ordnern lassen sich problemlos aufrufen). Gibt es Dateien in dehnen ihr das Problem vermutet? Wenn ja könnte ich diese hochladen.
Was die Konfigurationsmöglichkeiten angeht: Wir haben uneingeschränkte Rechte.
MfG
Twinhand
Lösung: Als ich gestern nach
am 19.12.2013 - 09:28 Uhr
Lösung:
Als ich gestern nach einen Lösungsansatz gesucht habe, ist mir folgendes aufgefallen. Die oben genannte Lösung funktioniert nicht bei dem Ordnernamen "protected-files" bennent man diesem um oder erstellt einen anderen Ordner und passt alles entsprechend an, funktioniert es. Ich habe in den jeweiligen Dateien nach "protected files" ge- "grep"ed und keine Zeile gefunden die besagtes Verhalten auslösen könnte.
Kann es sein, dass "protected-files" einfach ein reservierter Systemname ist?
In jedem Fall, danke ich euch, für eure Hilfe
MfG
Twinhand