Kann ich eine Indexseite auch mit index.php erstellen?
Hallo Zusammen,
Mir ist klar die Frage hört sich blöd an, was ich meine ist, wenn ich keine index.php/html auf meinem webserver habe dann kommt ja wie unten im Beispiel so eine Indexlistenseite, wenn ich jedoch die index.php/html im Verzeichnis habe, ist die Indexliste nicht mehr da sondern die normale seite. Gibt es aber eine möglichkeit trotz index.php/html eine indexliste zu bekommen? Vielleicht sogar dass ich, wenn ich die seite indexliste.php öffne diese liste kommt? Ich hoffe ich konnte es verständlich erklären.
Kurzgefasst:
Neben meiner Webseite (index.php) würde ich gerne noch eine Indexliste wie im Bild zu sehen haben. Ist sas Möglich?
Lg
Biolaxy

6 Antworten
Dein Screenshot sieht danach aus, als hättest du den Apache Webserver. Meines Wissens ist das, was du beschreibst, mit Apache nicht möglich.
Du kannst so eine Seite aber selbst programmieren! Das ist gar nicht schwer. Hier funktionierender Code, den ich vor einiger Zeit geschrieben habe:
<?php
// Aktuelles Verzeichnis öffnen
$handle = opendir('./');
$dirs = array();
$files = array();
// Ordner und Dateien lesen
while (($entry = readdir($handle)) !== false) {
if ($entry === '.' || $entry === '..') {
continue;
} else if (is_dir($entry)) {
array_push($dirs, $entry);
} else {
array_push($files, $entry);
}
}
// Dateien und Ordner natürlich alphanumerisch sortieren
sort($dirs, SORT_NATURAL);
sort($files, SORT_NATURAL);
// Ordner ausgeben
for ($i = 0; $i < count($dirs); $i++) {
echo "<a class='ordner' href='$dirs[$i]'>$dirs[$i]</a>";
}
// Dateien ausgeben
for ($i = 0; $i < count($files); $i++) {
echo "<a class='datei' href='$files[$i]'>$files[$i]</a>";
}
// Verzeichnis schließen - nicht vergessen!
closedir($handle);
Das kannst du dann auch noch mit etwas CSS aufpeppen:
<style>
.ordner, .datei {
display: block;
padding: 5px 10px;
margin: 5px 0;
background-color: #fdfdaa;
color: black;
text-decoration: none;
}
.datei {
background-color: white;
color: #0044ee;
}
.ordner:hover, .datei:hover {
opacity: .7;
}
</style>
Klar geht das.
Einige Beispiele findest du in https://www.qwant.com/?q=php%20directory%20list&t=web
Den PHP-Code setzt du an die Stelle der Seite, wo die Liste hin soll.
(Hab jetzt nicht nachgesehen, ob dabei die Einträge auch als Link dargestellt werden. Ist aber auch kein Problem, dann packt man die Dinger eben noch in <a>-Tags.)
Mit ein bisschen CSS kannst du die Liste dann auch schöner aussehen lassen.
Die originale Indexliste wird vom Webserver bereitgestellt. Entweder greift PHP schon darauf zurück (nur Inhalt, nicht Formatierung natürlich), oder du erweiterst die Webserver-Software entsprechend (Apache z. B. ist ja Open Source), oder du startest mit PHP einen Webserver mit Fernsteuerung und weist den an, diese Liste zu speichern, oder du schreibst dir eine kleine Anwendung, die diese Liste in ein HTML-Anzeigeelement lädt und abspeichert. Die letzten beiden erfordern, dass du von PHP aus eine ausführbare Datei auf dem Server startest und ihre Beendigung abwartest.
Auch wenn so was möglich ist, würde ich dir sowas nie raten!
Es ist nicht gut, wenn die Leute wissen, was wie wo auf deinem Webserver liegt. Benutze hierfür einfach einen FTP Server oder einen Dateibrowser in PHP um die die Dateien anzeigen zu lassen, mach das aber bitte nicht öffentlich. Normalerweise Verbietet man das Auflisten der Dateien sogar Server-Seitig
Das will ich ja nicht direkt auf dem rootverzeichnis machen, ich habe nur einen Grafische Seite (index.php) auf der ein Paar Dinge zu Downloads stehen und würde aber gerne auch den Ganzen ordner also indexliste ausgeben lassen. Das Risiko ist mir bewusst, aber ich habe es auch per htaccess passwortgeschützt
was du machen könntest, du könntest eine subdomain anlegen. z.B.
download.meinedomain.de
wenn du den inahlt des entsprechenden ordners dann mit der htaccess datei freigibst, kann der user unter der angegebenenen domain auf die inhalte zugreifen, ohne den rest deiner hompeage sehen zu können...
lg, Anna
Ja, du musst die DirectoryIndex-Direktive auf irgendetwas anderes setzen. Z.B.
DirectoryIndex bla.html
Wichtig: Wenn du DirectoryIndex veränderst, kann man bei einer URL wie z.B.
http://www.example.com/my/directory/index.php
Den Dateinamen nicht mehr weglassen.
Diese alternative kenne ich, benutze ich auch derzeit, jedoch würde ich gerne die originale indexliste verwenden