[APACHE2] Standartseite (Verzeichnisliste) ändern
vMief
- webserver
1 Gunnar Bittersmann0 vMief0 Gunnar Bittersmann0 vMief0 ChrisB
Hallo Leute,
ich habe eine Frage zu dem Webserver Apache2:
Aktueller Zustand:
Wenn es in einem Verzeichnis keine index.php, index.html oder index.htm Datei gibt, wird standardmäßig eine Übersicht über die Dateien und Ordner angezeigt. Das will ich auch nicht direkt abschalten.
Was ich gerne hätte:
Diese "Verzeichnisüberischtsseite" würde ich gerne gegen eine eigene austauschen. Aktuell muss ich noch in jedes Verzeichnis eine index.php rein kopieren, die dann die entsprechende Datei includiert. Geht das vielleicht auch einfacher?
@@vMief:
nuqneH
Was ich gerne hätte:
Diese "Verzeichnisüberischtsseite" würde ich gerne gegen eine eigene austauschen.
Du suchst [link:http://httpd.apache.org/docs/current/mod/mod_dir.html#directoryindex@title=DirectoryIndex]
?
Qapla'
Du suchst
[link:http://httpd.apache.org/docs/current/mod/mod_dir.html#directoryindex@title=DirectoryIndex]
?Qapla'
Das funktioniert fast, ich habe das jetzt so gemacht:
DirectoryIndex /index.php
Das funktioniert auch soweit, allerdings glaubt PHP jetzt auch, ich wäre immer DocumentRoot Verzeichnis und nicht in einem Unterverzeichnis. Muss ich jetzt meinen PHP-Code so abändern, dass es wieder funktioniert, oder kann man Apache irgendwie so Konfigurieren, das PHP nicht immer das Verzeichnis der index.php nimmt, sondern das Verzeichnis aus der Adresszeile des Browsers?
@@vMief:
nuqneH
Das funktioniert fast, ich habe das jetzt so gemacht:
DirectoryIndex /index.php
Das funktioniert auch soweit, allerdings glaubt PHP jetzt auch, ich wäre immer DocumentRoot Verzeichnis und nicht in einem Unterverzeichnis.
Bist du ja auch, wenn du immer die index.php aus deinem Webroot-Verzeichnnis aufrufst. Ist es das, was du willst?
Muss ich jetzt meinen PHP-Code so abändern, dass es wieder funktioniert,
Was ist „es“?
oder kann man Apache irgendwie so Konfigurieren, das PHP nicht immer das Verzeichnis der index.php nimmt, sondern das Verzeichnis aus der Adresszeile des Browsers?
Wenn das PHP-Script läuft, hat der Apache schon sein Werk getan. In PHP steht dir $_SERVER['REQUEST_URI']
zur Verfügung.
Qapla'
Wenn das PHP-Script läuft, hat der Apache schon sein Werk getan. In PHP steht dir
$_SERVER['REQUEST_URI']
zur Verfügung.Qapla'
Damit habe ich es jetzt auch gelöst, ich hatte nur gedacht, dass es eine Möglichkeit gibt, dass der Apache so tut, als wäre er nicht im DocumentRoot, sondern in dem Verzeichnis aus der Adresszeile. Aber egal, es geht ja jetzt.
Hi,
Wenn das PHP-Script läuft, hat der Apache schon sein Werk getan. In PHP steht dir
$_SERVER['REQUEST_URI']
zur Verfügung.
Damit habe ich es jetzt auch gelöst
nein, nicht gelöst - du hast ein Sekundärproblem gelöst, das du dir selbst erst gemacht hast.
ich hatte nur gedacht, dass es eine Möglichkeit gibt, dass der Apache so tut, als wäre er nicht im DocumentRoot, sondern in dem Verzeichnis aus der Adresszeile.
Er geht generell von dem Verzeichnis aus, das auch angesprochen wurde. Aber indem du /index.php absolut angibst, schickst du ihn explizit ins DocumentRoot. Das solltest du bleiben lassen. Adressiere stattdessen relativ.
Ciao,
Martin
@@Der Martin:
nuqneH
Er geht generell von dem Verzeichnis aus, das auch angesprochen wurde. Aber indem du /index.php absolut angibst, schickst du ihn explizit ins DocumentRoot.
Wie ich vMief jetzt(!) verstanden habe, soll das so. Weil das Script nur einmal vorhanden sein soll – aber dennoch auf das Verzeichnis zugreifen soll, von dem aus es ursprünglich aufgerufen wurde.
Qapla'
Hallo,
Er geht generell von dem Verzeichnis aus, das auch angesprochen wurde. Aber indem du /index.php absolut angibst, schickst du ihn explizit ins DocumentRoot.
Wie ich vMief jetzt(!) verstanden habe, soll das so. Weil das Script nur einmal vorhanden sein soll – aber dennoch auf das Verzeichnis zugreifen soll, von dem aus es ursprünglich aufgerufen wurde.
oh, den Aspekt habe ich wohl auch übersehen ...
Tatsächlich, so könnte es sein. Dann ist dein Ansatz über REQUEST_URI natürlich zielführender.
Ciao,
Martin
Wie ich vMief jetzt(!) verstanden habe, soll das so. Weil das Script nur einmal vorhanden sein soll – aber dennoch auf das Verzeichnis zugreifen soll, von dem aus es ursprünglich aufgerufen wurde.
Qapla'
Genau das habe ich gemeint. Entschuldigung, wenn ich mich unklar ausgedrückt habe.
Hi,
Wenn das PHP-Script läuft, hat der Apache schon sein Werk getan. In PHP steht dir
$_SERVER['REQUEST_URI']
zur Verfügung.
Das würde ich aber noch gegen directory traversal absichern wollen …
MfG ChrisB
Hi,
Wenn das PHP-Script läuft, hat der Apache schon sein Werk getan. In PHP steht dir
$_SERVER['REQUEST_URI']
zur Verfügung.Das würde ich aber noch gegen directory traversal absichern wollen …
MfG ChrisB
So wie das aussehen soll/ausssieht, muss man sich darüber keine Sorgen machen.
Hello,
Wenn das PHP-Script läuft, hat der Apache schon sein Werk getan. In PHP steht dir
$_SERVER['REQUEST_URI']
zur Verfügung.Das würde ich aber noch gegen directory traversal absichern wollen …
Wie wäre es denn stattdessen mit einem Rewrite-Regelwerk und $_SERVER['REDIRECT_URL']?
Und dann kommen wir leider automatisch wieder zu der Diskussion mit Status 404 und Soft-404...
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg