Sönke Tesch: verzeichnisstrukture auf einem webserver

Beitrag lesen

ist es eher typisch die webserverstruktur so aufzubauen

/htdocs/http/
/htdocs/cgi-bin/

oder eher so

/htdocs/alles

Die einzig vernünftige Antwort darauf kann nur lauten, daß das vom Geschmack des Seiten- und Systembetreibers abhängt.

Der Sinn des cgi-bin-Verzeichnisses ist lediglich, daß der Systembetreiber in der Lage ist, alle vom Seitenbetreiber eingesetzten Programme zumindest halbwegs unter Kontrolle zu haben. Die CGI-Schnittstelle erlaubt die Ausführung jedweder Programmformen, so daß die Gefahr besteht, daß jemand fürchterlich viel Unsinn macht und möglicherweise sogar den Rechner zerlegt.
Sind diese Programme auf den gesamten Webspace verteilt, schön vermischt mit harmlosen Dokumenten, wird es ungleich schwieriger, da ein Auge drauf zu haben.

Als Seitenbetreiber und Anhänger von sinnvollen, selbstbeschreibenden URLs würde ich persönlich natürlich die Vermischung der "aktiven Dateien" mit den "Datendateien" vorziehen.
Es interessiert den Nutzer nicht, ob die Seite X von einem CGI-Programm ausgeliefert wurde oder eine normale HTML-Datei ist. Wichtiger als die interne Struktur einer Webseite ist für ihn die Orientierung innerhalb des Angebots; und die sicherlich einfachste Orientierungmöglichkeit kann die URL sein, denn sie folgt einem weit verbreiteten Schema aus Ordnern und Objekten, getrennt durch Schrägstriche. Aus diesem Grund ist es nebenbei bemerkt auch ein unschöner faux-pas, wenn man die Statuszeile mit Javascript zumüllt oder per <frameset> versucht, die Adressleiste zu verschleiern.

Dementsprechend gehört beispielsweise das Anmeldeprogramm für einen Infodienst in dasselbe Verzeichnis wie die Informationen zum Dienst, etwa so:

/infodienst/                     <- allgemeine Informationen, Einleitung
  /infodienst/nutzungsbedingungen  <- URL erklärt sich selbst (!)
  /infodienst/anmeldung            <- Anmeldeformular und -verarbeitung, ein CGI-Programm

Nicht so:

/html/infodienst/index.html
  /html/infodienst/nutzungsbedingungen.html
  /cgi-bin/infoanmeldung.cgi

Und wo ich gerade dabei bin, schon garnicht so:

/index.php?site=1123&menu=info&page=info
  /index.php?site=1123&menu=infounterseite&page=agb
  /index.php?site=1123&menu=infocgi&page=subscribe

(Ersetze .php durch eine beliebige Anwendungsendung)

Gruß,
  soenk.e