Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Allgemeines zu Drupal ›

[gelöst] http-auth für symlink?

Eingetragen von forschi (52)
am 03.11.2009 - 19:35 Uhr in
  • Allgemeines zu Drupal
  • Drupal 6.x

'n Abend miteinander.

Ich hab' hier mal eine etwas kniffligere Aufgabe:

Ich betreibe eine D6-Installation, welche zwei Webseiten bedient: example.com/ und example.com/foo. Der Installations-/Configurationsanleitung entsprechend habe ich einen symlink von '/foo' auf '.' angelegt und beide Seiten erfolgreich zum Laufen gebracht. Nun hätte ich gerne, dass man sich für den Besuch von example.com/foo zunächst mit http-auth anmelden muss, für den Zugriff auf example.com sollen aber keine Zugangsdaten erforderlich sein.

Ich kann jetzt ja schlecht eine .htaccess-Datei in den Symlink legen :-) Und wenn ich './.htaccess' so konfiguriere, dass sie http-auth verlangt, dann kann niemand mehr ohne Kennwort auf example.com zugreifen.

Hat jemand eine Idee, wie ich das hinbekommen könnte?

Danke im Voraus,
forschi

Edit: ich habe schon mit dem Modul 'secure pages' geliebäugelt, das tut aber nicht so ganz, wie ich mir das vorstelle: zwar kann ich mich vermittels http-basic anmelden, jedoch kann ich mich dann nicht mehr abmelden.

‹ [gelöst] Login aber keine Zugriffsberechtigung - nirgends!?! Wie Umstellung Charset in eMails von UTF-8 auf ISO-8859-1 ? ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

<Location>

Eingetragen von traxer (1009)
am 04.11.2009 - 10:47 Uhr
forschi schrieb

Ich kann jetzt ja schlecht eine .htaccess-Datei in den Symlink legen :-)

Alles was du in .htaccess einstellen kannst, kannst du auch in einem geeigneten <Location>-Abschnitt direkt in der httpd.conf einstellen.

forschi schrieb

... welche zwei Webseiten bedient: example.com/ und example.com/foo. Der Installations-/Configurationsanleitung entsprechend habe ich einen symlink von '/foo' auf '.' angelegt und beide Seiten erfolgreich zum Laufen gebracht.

Funktionieren denn auch example.com/foo/foo, example.com/foo/foo/foo und example.com/foo/foo/foo/foo? Falls ja, ist das schlimm? Falls es schlimm ist, dann verwende anstatt Symlinks die Alias-Direktive.

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Mist, ich wusste, ich hatte

Eingetragen von forschi (52)
am 04.11.2009 - 11:11 Uhr

Mist, ich wusste, ich hatte was vergessen:

Die Installation liegt auf einem Webspace bei 1und1. Ich komm' also nur an die .htaccess-Datei ran, nicht an die httpd.conf. Ansonsten hatte ich auch schon mit DirectoryMatch oder LocationMatch geliebäugelt, das geht aber auch nur über die Server-Config und nicht in der .htaccess-datei.

Lustig, aber verstädnlich ist, dass example.com/foo/foo/foo... auch geht. Stören tut das allerdings nicht weiter, solange ich den Zugriff beschränken kann, egal wie viele /foo's angehängt werden.

Danke trotzdem für die Ideen. Sie helfen auf jeden Fall, das Problem besser einzuschätzen und weiter einzugrenzen.

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ersetze den Symlink durch

Eingetragen von traxer (1009)
am 04.11.2009 - 11:23 Uhr

Ersetze den Symlink durch ein Verzeichnis. Dort speicherst du dann folgende index.php:

<?php


chdir
('..');
include
'./index.php';
?>

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Das klingt interessant, tut

Eingetragen von forschi (52)
am 04.11.2009 - 11:53 Uhr

Das klingt interessant, tut jedoch leider nicht.

Zum einen kann ich dann keine updates mehr für /foo ausführen, weil ich dazu /foo/update.php aufrufen muss. Zum anderen werden die Parameter nicht an die index.php von Drupal übergeben. Selbst folgender Schnipsel vermag das Problem nicht zu lösen:

<?php

chdir
('..');
$query = str_replace("/intern/","",$_SERVER['REQUEST_URI']);

if(
strcmp($query,"update.php") == 0){
    include
'./update.php';
}
else{
   
$_GET['q'] = $query;
    include
'./index.php';
}
?>

  • Anmelden oder Registrieren um Kommentare zu schreiben

forschi schrieb Zum einen

Eingetragen von traxer (1009)
am 04.11.2009 - 12:46 Uhr
forschi schrieb

Zum einen kann ich dann keine updates mehr für /foo ausführen, ...

Könnte man durch eine analoge update.php hinbekommen.

forschi schrieb

Zum anderen werden die Parameter nicht an die index.php von Drupal übergeben.

Parameter werden ja nicht im eigentlichen Sinne an die index.php übergeben, sie landen in bestimmten Variablen. Diese Varaiblen sind verfügbar unabhängig davon ob ein Script direkt ausgeführt wird oder von einem anderen Script eingebunden wird.

Wenn du CleanURLs verwendest, dann brauchst du im Verzeichnis foo natürlich eine passende .htaccess. Zum Testen würde ich aber CleanURLs vorerst deaktivieren. Eventuell brauchst auch eine eigene Konfiguration im sites-Verzeichnis deiner eigentlichen Installation (um eine $base_url angeben zu können, vieleicht hast du sie auch schon für die Datenbankkonfiguration).

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Danke, die .htaccess hat

Eingetragen von forschi (52)
am 04.11.2009 - 16:16 Uhr

Danke, die .htaccess hat natürlich gefehlt. Die eigene Konfigurationsdatei ist vorhanden, sonst würde die Seite auch mit dem symlink nicht funktionieren.

Das Problem ist jetzt, dass die Seite ansich zwar funktioniert, Themes werden jedoch weiterhin in example.com/foo/sites/example.com.foo/themes gesucht. Auch JavaScript-Dateien werden über eine solche URI eingebunden, weswegen auch die Variante mit dem Symlink anstandslos funktioniert.

Selbst das Umstellen von öffentlichem Dateizugriff auf privaten Dateizugriff ändert hier nichts. Auch das Leeren und Deaktivieren sämtlicher Caches bringt keinen Erfolg.

Die base_url hab' ich in der Config eingetragen und auch die rewritebase in der .htaccess-Datei ist auf /foo geändert (auch '/' ändert nichts).

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ein Symlink von /foo/sites

Eingetragen von traxer (1009)
am 04.11.2009 - 16:43 Uhr

Ein Symlink von /foo/sites nach /sites sollte da weiterhelfen. Bei fehlendem files-Verzeichnis ebenfalls.

--
XING

  • Anmelden oder Registrieren um Kommentare zu schreiben

Läuft!

Eingetragen von forschi (52)
am 04.11.2009 - 23:15 Uhr
traxer schrieb

Ein Symlink von /foo/sites nach /sites sollte da weiterhelfen. Bei fehlendem files-Verzeichnis ebenfalls.

Um es mit den Worten von Bart Simpson zu sagen: "Uh, perverso!".

Hatte das Mittagessen doch glatt mein Hirn eingeschläfert.

Funktioniert bisher tadellos. Hier nochmal die Zusammenfassung:

  1. Drupal Multi-Site-Installation durchführen mit symlink von example.com/foo nach example.com
  2. Nach erfolgreicher Installation: symlink entfernen, Verzeichnis /foo erstellen
  3. dort eine index.php und eine update.php erstellen mit dem Inhalt:
    <?php chdir ('..');include './index.php';?> bzw.
    <?php chdir ('..');include './update.php';?>
  4. die 'RewriteBase' in example.com/foo/.htaccess auf '/foo' setzen
  5. die 'RewriteBase' in example.com/.htaccess auf '/' setzen
  6. symlink erzeugen von example.com/foo/sites nach example.com/sites (sonst gibt's keinen Zugriff auf hochgeladene Dateien)
  7. symlink erzeugen von example.com/foo/themes nach example.com/themes (Grafiken und CSS-Dateien werden direkt eingebunden)
  8. symlink erzeugen von example.com/foo/misc nach example.com/misc (js-Dateien, die evtl. im header eingebunden werden)
  9. symlink erzeugen von example.com/foo/modules nach example.com/modules (hier liegen noch einige .css-Dateien)
  10. base_url in example.com/sites/example.com.foo/settings.php auf 'http://example.com/foo' setzen (evtl. überflüssig)

Und dann natürlich die gewünschte Zugriffsbeschränkung in der .htaccess-Datei in /foo einrichten.

Und schon geht sie ab, die Luzi.

Besten Dank.

Nachtrag: in /sites/example.com.foo/ muss ebenfalls eine .htaccess-Datei erstellt werden, die eine http-auth Autorisierung durchführt, sonst stehen alle hochgeladenen Dateien, frei zum Download zur Verfügung! Alternativ können natürlich auch nur die Dateien geschützt werden, aber dann ist noch ein unautorisierter Zugriff auf die Module möglich. Sicher kein übermäßiges Problem, aber auch nicht grade das, was man von einer sicheren Seite erwartet.

  • Anmelden oder Registrieren um Kommentare zu schreiben

@traxer: danke für die

Eingetragen von forschi (52)
am 04.11.2009 - 23:54 Uhr

@traxer: danke für die Hilfe! Ich bin nochmal über ein paar Darstellungsfehler gestolpert. Da haben die Symlinks nach example.com/themes und example.com/modules gefehlt. Vermutlich hätte ich sicherlich auch noch irgendwann Probleme bekommen, weil auch die .js-Dateien im HTML-Quelltext stehen. Ich denke, dass mal /scripts außer Acht lassen kann, weil sie nicht im Betrieb benötigt werden, /tmp wird nur php-intern verwendet. Ebenso /includes und die Profile aus /profiles.

Man fragt sich natürlich, ob man /profiles und /scripts überhaupt auf dem Webserver braucht, nachdem Drupal installiert ist...

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 4 Tagen 5 Stunden
  • Hey danke
    vor 5 Tagen 3 Minuten
  • Update: jetzt gibt's ein
    vor 5 Tagen 18 Stunden
  • Hallo, im Prinzip habe ich
    vor 1 Woche 3 Tagen
  • Da scheint die Terminologie
    vor 1 Woche 3 Tagen
  • Kannst doch auch alles direkt
    vor 2 Wochen 13 Stunden
  • In der entsprechenden View
    vor 2 Wochen 13 Stunden
  • Dazu müsstest Du vermutlich
    vor 2 Wochen 13 Stunden
  • gelöst
    vor 4 Wochen 4 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 4 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20449

Neue User:

  • Mroppoofpaync
  • 4aficiona2
  • AppBuilder

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 9 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association