|
Es ist möglich, ein vom Webserver verwaltetes Verzeichnis zum
gemeinsamen oder öffentlichen Download einzurichten. Das wird von den meisten AnwenderInnen sehr begrüßt. |
Diese Seite zeigt, wie man diese Option am eigenen Server oder beim Web-Provider einrichten kann. |
Apache
|
Der weltweit erfolgreichste Standard Webserver (Linux, Windows) |
| Live-Demo | Gemeinsames Download-Verzeichnis |
| Einzel-Download | Download mit HTTP-Hyperlink |
| Eigener Webserver | Einstellung in der Server Grund-Konfiguration |
| Provider-Webserver | Nachträgliche Live-Einstellung |
| Optionen | Individuelle Anpassung des Directory-Listing |
| Verhindern | Mit einer Datei index.html |
Live Directory Browsing |
|
|
Im Fenster unterhalb sehen sie ein typisches Download-Verzeichnis:
Diese Art der Darstellung und Verwendung nennt man (HTTP)-Directory Browsing. Die enthaltenen Dateien können auf eigenes Risiko verwendet werden, d.h. es gibt keine Gewähr für die Funktion oder Richtigkeit der Daten. |
Das Layout kann zwar verändert werden, kaum jemand macht sich jedoch
diese Mühe: Alle gemeinsam oder öffentlich eingerichteten
Download-Verzeichnisse sehen deshalb so ähnlich aus.
(Die hier gezeigte Liste wurde allerdings geringfügig verändert). Ein Link ins nächst-höhere Verzeichnis (Parent Directory) wird hier nicht zugelassen. |
| Directory-Browsing (die Anzeige aller Dateien eines Web-Verzeichnisses) ist normalerweise nicht notwendig, potentiell gefährlich und daher verboten bzw. abgeschaltet. | In Ausnahme-Fällen (z.B. in einem Download-Verzeichnis) ist diese Methode jedoch praktisch und sinnvoll. Auf dieser Seite wird gezeigt, wie man ein solches Verzeichnis einrichtet. |
|
♥
Am eigenen Server im lokalen Netzwerk ist es sehr
empfehlenswert, ein solches Verzeichnis einzurichten. ♥ Das gleiche Verzeichnis macht man sinnvoll auch mit anderen Diensten zugänglich, z.B. mit dem → FileServer und dem FTP-Server. Für alle Arten des Zugangs richtet man die gleichen Rechte ein. |
Am Server eines Providers ist diese Option meistens, jedoch nicht immer gestattet. Man kann optional den → Zugang beschränken und man sollte dort nur wenige wirklich sinnvolle Dateien verwalten. |
Einzel-Download |
|
| Unabhängig von der Möglichkeit des Directory Browsing gibt es immer die Möglichkeit zum Download einer einzelnen Datei. Dazu legt man einfach einen HTML-Hyperlink zu dieser Datei. |
|
|
Der Link (Beispiel rechts) führt in diesem Fall nicht auf eine Webseite
sondern auf eine beliebige Datei. ♣ Tipp: Bieten Sie nach Möglichkeit nur Archive (*.zip) zum Download an. |
HTML-Beispiel:
<a href="/public/demo.zip">
</a>
|
Eigener Webserver |
|
|
Am eigenen Server haben sie vollen Zugriff auf die Konfiguration des Webservers.
Das Beispiel rechts zeigt, wie man ein Verzeichnis zum HTTP-Download einrichtet. • Die Einrichtung eines Alias ist üblich und sinnvoll, jedoch nicht unbedingt notwendig. • Die Zugangs-Rechte (Allow/Deny) müssen eindeutig geregelt werden. • Danach folgt die Freigabe mit Options +Indexes und einigen weiteren Optionen. |
Beispiel für eine Apache
Konfigurations-Datei public.conf
Alias /public "/srv/public"
<Directory "/srv/public">
Order allow,deny
</Directory>
Allow from 192.168.0.0/255.255.255.0 Options +Indexes
IndexIgnore .??* *~
|
Bedingungen• Das Apache-Modul mod_autoindex muss geladen sein. Das ist bei typischen Installationen der Fall.• Mit der Anweisung Option +Indexes wird das 'Directory Browsing' erlaubt. Danach können zahlreiche Optionen zur genauen Einstellung folgen. |
AliasDas Alias /public erspart die Eingabe des Pfades zum Download-Verzeichnis und sichert dieses auch besser. Das Verzeichnis befindet sich besser nicht im Webserver-Bereich (DocumentRoot), sondern an anderer Stelle, z.B. /srv/publicSo gelangt man nach Installation mit einem Browser in das Download-Verzeichnis: http://192.168.0.2/public
(ersetzen Sie die IP-Adresse durch jene ihres Servers).
|
Zugangs-RechtePrinzipiell gelten die im Betriebssystem eingestellten Rechte. Sie können vom Webserver nur eingeschränkt, nicht erweitert werden. |
Einstellung der Rechte am Webserver: Mit Deny wird der Zugang generell verboten, danach werden mit Allow Ausnahmen zugelassen: Im Beispiel wird der Zugang für alle PC des lokalen Netzwerks 192.168.0.* erlaubt. ♦ Details zu IP-Adressen und -Masken |
Datei-Typen♣ Am eigenen Server können Sie zwar alle Datei-Typen zum Download anbieten, eine Orientierung an den Beschränkungen typischer Web-Provider ist jedoch sinnvoll (schneller und sicherer).♣ Verwenden Sie nur ganz wenige Datei-Typen. ♣ Lassen sie das Download-Verzeichnis niemals leer: Stellen sie mindestens eine kleine erklärende Text-Datei hinein. Im Zweifel kann man jedes Archiv mit einer kurzen Text-Datei *.txt beschreiben. • Zusammengehörende Dateien (z.B. ganze Verzeichnisse / Ordner) werden am besten gemeinsam in ein einziges Archiv verpackt. • Große Dateien (z.B. >10MB) teilt man in mehrere Archive auf: Alle guten Archiv-Programme bieten diese Möglichkeit. |
• Vermeiden Sie direkt verwendbare Dateien, z.B. *.doc,*.xls,*.gif,*.jpg,*.mp3, ... und verpacken sie solche Dateien in Archive. So kann man die Gäste dazu bewegen, die Dateien möglichst nicht am Server zu öffnen (unerwünschter Verkehr im Netzwerk) sondern auf den eigenen PC zu kopieren. • Webseiten *.html,*.php, ... und PDF-Dokumente werden aus einer Directory-Liste nicht heruntergeladen sondern direkt angezeigt. Verpacken sie daher alle zum Download bestimmte Webseiten in Archive *.zip • Insbesondere sollte das Download-Verzeichnis keine Startseite index.html,index.htm,index.php enthalten ! |
|
►
Nach Neustart des Webservers tritt die Konfiguration in Kraft. Auf Linux
verwendet man dazu die Shell-Konsole, direkt oder mit SSH ferngesteuert:
# /etc/init.d/apache2 restart
Auf einem Windows-Server verwendet man das Hilfsprogramm im System-Tray
(ganz rechts unten).
|
OptionenFür dieses Apache-Modul gibt es besonders viele einstellbare Optionen. Als Beispiel wird hier verwendet:IndexOptions +IgnoreClient
Damit verhindert man, dass BesucherInnen eine lange Verzeichnis-Liste durch
Anklicken der Spalten-Titel sortieren können (Der Server erzeugt jedesmal
eine neue Liste). Es ist übersichtlicher und effizienter, die Dateien
in sinnvoll benannte Sub-Verzeichnisse zu verschieben.
|
| Die hier vorgestellten Methoden erlauben lediglich den Download von Dateien mit dem Browser. | Ein Upload ist ebenfalls möglich, erfordert jedoch ganz andere Maßnahmen, z.B. den → Upload von Dateien mit PHP. |
Provider-Webserver |
|
|
Wenn Sie ein von ihrem Web-Provider verwaltetes Verzeichnis für den
öffentlichen Download freigeben wollen, dann stellen sie eine einfache
Text-Datei mit dem Datei-Namen .htaccess
(genau so, mit führendem Punkt !) und dem
rechts gezeigten Inhalt in das betreffende Verzeichnis. |
Beispiel für eine
Konfigurations-Datei .htaccess
Options +Indexes
Nur die erste Zeile ist unbedingt notwendig.
IndexIgnore .htaccess *~ |
|
Diese Methode ist für den eigenen Server nicht sinnvoll !
Verwenden sie besser die im
↑ Kapitel
oberhalb beschriebene Methode. Allerdings ist es sinnvoll, die hier beschriebene Provider-Methode vor Verwendung am eigenen Server auszuprobieren. |
Die hier beschriebene Methode funktioniert nur unter bestimmten Voraussetzungen.
Diese (Apache Konfiguration) sind allerdings bei den meisten professionellen
Web-Providern erfüllt. In den folgenden Absätzen werden diese Bedingungen vorgestellt. |
Apache KonfigurationDie Apache Grund-Konfiguration ist am eigenen Server zugänglich, am Server des Web-Providers nicht. Einige Anweisungen beeinflussen das Verhalten von .htaccess Dateien.● Name der Datei für Zugangs-Kontrolle: AccessFileName .htaccess
Ändern sie diesen Namen nur dann,
wenn ihr Web-Provider einen anderen Datei-Namen verwendet.● Dateien dieses Namens werden nicht angezeigt:
<FilesMatch "^\.ht">
Damit wird unterbunden, dass irgend eine durch den
→ RegExp-Ausdruck betroffene Datei (deren Name mit
.ht beginnt) von einem Client (Browser) angezeigt wird.
Das dient zum Schutz dieser Dateien.
Order allow,deny
</FilesMatch>
Deny from all |
● Erlaubnis zur Live-Änderung der Konfiguration
<Directory /home/test>
Anweisung AllowOverride regelt die Möglichkeiten
zur (nachträglichen) Live-Konfiguration.
AllowOverride Indexes
</Directory>
# AllowOverride All
• Die Reichweite umfasst alle Dateien des angegebenen Verzeichnisses und seiner Unter-Verzeichnissse. • Normalerweise wird diese Option zunächst einmal für alle Verzeichnisse mit AllowOverride None verboten. Erst danach wird die Option für ausgewählte Verzeichnisse freigegeben. • Im Beispiel wird die Option für das private Verzeichnis des Users test freigegeben (Typisch für einen Web-Provider). Am eigenen Server verwenden sie diese Option für jene Webseiten, die zum Provider hochgeladen werden, nicht jedoch für Webseiten, die nur im eigenen lokalen Netzwerk verwendet werden. |
|
• Ein gutes Editor-Programm wie z.B. Notepad++ kann solche Dateien nicht nur erzeugen, öffnen und verändern, sondern auch im normalerweise geforderten Linux-Format speichern. • Datei mit einem Windows-Namen test.txt erzeugen, danach mit der guten alten DOS-Konsole (Eingabeaufforderung) kopieren oder umbenennen:
C:\> copy test.txt .htaccess
C:\> rename test.txt .htaccess |
Jede Änderung der Konfiguration tritt erst nach Neustart des Webservers in Kraft. |
Optionen |
|
| Das Apache Modul mod_autoindex bietet besonders viele Optionen zur individuellen Konfigration der Directory Listings. | Hier wird eine kleine subjektive Auswahl von Optionen vorgestellt. |
AliasEs ist empfehlenswert, ein Webserver-Alias einzurichten. Wählen sie einen passenden Namen (hier /public ) und ändern sie den Pfad zum Verzeichnis nach Bedarf. Der Browser-Zugang erfolgt dann z.B. mithttp://192.168.0.2/public
(Ersetzen sie die IP-Adresse durch den Namen oder die tatsächliche Adresse
ihres Servers).RechteAlle Dateien in einem Download-Verzeichnis sollten lediglich lesbar sein. Ändern sie die Rechte z.B. mit
# chown -R root /srv/public
Um ein Verzeichnis überhaupt zu 'betreten',
braucht man Execute-Rechte, z.B.
# chmod -R 744 /srv/public # chmod 755 /srv/public
IndexesDas Directory-Browsing wird am besten am gesamten Server generell verboten. Mit der Option Indexes wird es für einzelne Verzeichnisse ausdrücklich erlaubt. Diese Option ist unbedingt erforderlich, um Directory Browsing zu erlauben. |
Beispiel für eine Apache Konfigurations-Datei public.conf
Alias /public "/srv/public"
♣
Alle Argumente der Anweisungen IndexIgnore, IndexOptions
kann man auch in je eine einzige Zeile schreiben. Die hier verwendete Aufteilung
erfolgt lediglich zur besseren Übersicht.
<Directory "/srv/public/">
Order allow,deny
</Directory>
Allow from all Options Indexes
# DirectoryIndex zipp.zapp
HeaderName .HEADER.HTMLReadmeName .FOOTER.HTML IndexIgnore .??* *~ IndexIgnore *.CSS *.HTML *.TXT # IndexStyleSheet ".INDEX.CSS"
IndexStyleSheet "/lib/dir_index.css"IndexOptions +FoldersFirst IndexOptions +HTMLTable IndexOptions +IgnoreCase IndexOptions +IgnoreClient IndexOptions +SuppressDescription |
IndexIgnoreAls Argumente folgen die Namen oder Namens-Muster von Dateien, die im Directory-Listing nicht angezeigt werden sollen.• Das Muster .* bezeichnet alle Dateien, deren Namen mit einem . Punkt beginnen. Sie werden nicht angezeigt. Mindestens die Dateien .ht* müssen von der Ansicht ausgeschlossen werden. Mit .* wird auch der Link zum Parent-Directory abgeschaltet. Um dieses auszunehmen verwenden sie das Muster .??* • Das Muster *~ bezeichnet alle Dateien, deren Namen mit einem ~ Zeichen enden. (Linux Editor-Programme erzeugen Sicherungs-Dateien mit solchen Namen). • Linux unterscheidet streng zwischen Groß- und Kleinbuchstaben. Daher kann man anordnen, alle üblichen Dateien *.html anzuzeigen, *.HTML jedoch zu unterdrücken. |
IgnoreClientDiese IndexOption schaltet die sonst angebotene Möglichkeit ab, die Liste durch Anklicken einer Spalten-Überschrift zu sortieren. Das kostet wertvolle Server-Zeit, da die Liste jedesmal neu erstellt wird.● Es ist sparsamer und zugleich übersichtlicher, in jedem Verzeichnis nur wenige Dateien zu verwalten, und dafür sinnvolle Sub-Verzeichnisse einzurichten. DirectoryIndex• Die Verzeichnis-Ansicht wird nicht angezeigt, wenn sich eine Datei darin befindet, welche vom Webserver als Standardseite angezeigt wird, z.B. index.html• Dieses Verhalten kann man mit einem Trick umgehen: Mit der Anweisung DirectoryIndex definiert man einen mit Sicherheit nicht vorkommenden Datei-Namen als Standardseite. In diesem Fall werden auch Dateien wie index.html, index,htm, index.php in der Verzeichnis-Liste angezeigt. |
SuppressDescriptionDiese IndexOption schaltet die Spalte zur Beschreibung der jeweiligen Datei ab. Sie wird ohnehin kaum verwendet - ohne diese Spalte ist mehr Platz für die wichtigen Daten. |
Allow / DenyIm Beispiel ist der allgemeine Zugang ohne Einschränkung erlaubt. So wird der Zugang auf das eigene lokale Netzwerk begrenzt:Allow from 192.168.0.0/255.255.255.0
(Ändern sie die Adresse auf die Basis-Adresse ihres lokalen Netzwerks)
|
IndexStyleSheetMit dieser Anweisung wird eine → CSS StyleSheet-Datei zur Formatierung der Liste verwendet.Das Beispiel rechts oben zeigt 2 Varianten: • Die erste Variante (mit # abgeschaltet, für Verwendung bei einem Web-Provider) verwendet eine Datei .INDEX.CSS im gleichen Verzeichnis. Ihre Anzeige in der Liste wird mit einer passenden Einstellung von IndexIgnore vehindert. • Die zweite Variante bezeichnet eine Datei dir_index.css in einem beliebigen Pfad, welcher mit einem Alias /lib am eigenen Server bezeichnet ist. Wenn dieses Alias nicht definiert ist, dann beziehen sich Pfade mit führendem / Zeichen auf das DocumentRoot-Verzeichnis des Webservers (in dem sich auch die 'Homepage' index.html befindet). |
♣
Mit Rechtsklick in eine von ihrem Server angezeigte Directory-Liste erhalten sie
den HTML-Quelltext. Für jedes der enthaltenen HTML-Elemente kann man mit → CSS Regeln zur passenden Formatierung erstellen. Beispiel für eine CSS-Datei dir_index.css
body{font-size:12pt;}
h1{font-family:sans-serif; font-size:14pt;}
th,td{font-family:'Courier New',mono;
font-size:10pt; padding-right:10px;}
Diese CSS-Regeln formatieren eine als Tabelle <table> formatierte Directory-Liste. Sie können das mit der Option HTMLTable ausdrücklich verlangen. Ansonsten wird meistens ein HTML <pre>-Element verwendet, welches sie ebenfalls mit CSS formatieren können. |
HeaderNameMit dieser Anweisung ersetzt man den ansonsten automatisch hergestellten Seiten-Titel (Index of ...) durch einen eigenen. Der Datei-Name bezieht sich auf eine HTML-Text-Datei des angegebenen Namens im angezeigten Verzeichnis.• Die Anzeige dieser Datei in der Liste wird mit einer IndexIgnore Anweisung unterdrückt. Noch besser ist es, den Datei-Namen mit einem . Punkt zu beginnen, denn solche Dateien werden normalerweise von keinem Dienst angezeigt. • Beispiel für eine Datei .HEADER.HTML <h1>Public Download-Verzeichnis</h1>
• Die Datei .HEADER.HTML muss in jedes (Sub)-Verzeichnis kopiert werden, für das man diese Option verwenden will. • Es hat sich bewährt, für die Namen von Dateien, die man in der Directory-Liste nicht anzeigen will, Großbuchstaben zu verwenden. Solche Dateien kann man mit einer einfachen IndexIgnore Anweisung generell 'verstecken'. |
ReadmeNameMit dieser Anweisung ersetzt man die ansonsten automatisch hergestellte Server-Kennung am Ende der Directory-Liste (Apache...) durch einen eigenen Text.• Auch der Name dieser Datei beginnt am besten mit einem . Punkt. • Beispiel für eine Datei .FOOTER.HTML
<h1>
Verwendung der Dateien auf eigens Risiko !
</h1>
• Die Datei .FOOTER.HTML muss in jedes (Sub)-Verzeichnis kopiert werden, für das man diese Option verwenden will. • Man kann damit normalerweise nur statische HTML-Dateien einfügen. Mit einem HTML → <iframe>-Element kann man allerdings beliebige (auch dynamische) Web-Elemente einfügen, z.B.
<iframe src="/lib/footer.php" frameborder="0"
style="height:100px; width:100%;">
Der Pfad /lib/footer.php ist absolut angegeben, man
muss ihn daher in der Datei .FOOTER.HTML niemals
ändern. Das PHP Script-Programm befindet sich außerhalb des
angezeigten Verzeichnisses, man muss es daher nicht mit
einer IndexIgnore Anweisung verstecken.
</iframe> |
Datei-NamenLinux unterscheidet streng zwischen Groß- und Kleinbuchstaben, Windows ignoriert den Unterschied leider, allerdings auch nicht in allen Fällen. Auf Linux sind z.B. folgende Dateien im gleichen Verzeichnis möglich:test.dat, Test.dat, TEST.dat, test.DAT
Vermeiden sie solche Fälle nach Möglichkeit, zumindest in
Download-Verzeichnissen, auf welche auch Windows-User Zugriff haben. Wenn man
das Verzeichnis auf einen Windows-PC kopiert, dann ist das Ergebnis nicht
vorhersagbar - normalerweise werden einige Dateien vernichtet.● Vermeiden sie Leerzeichen, Umlaute und Sonderzeichen in den Namen von Verzeichnissen und Dateien, z.B. ÄÖÜäöü߀+#?& usw. Das Verhalten beim Kopieren auf andere Systeme oder beim Versenden über das Internet ist nicht vorhersagbar. Oft werden die verwendeten Sonderzeichen verändert, oder die verwendeten Programme ergeben Fehler. Verwenden sie als Datei-Namen nur → ASCII-Kleinbuchstaben, Ziffern und das _ Underline-Zeichen. In diesem Fall ist garantiert, dass die Dateien auf jedem System verwendbar sind. |
FoldersFirstDiese IndexOption sortiert Verzeichnisse vor Dateien, so wie das Windows-User gewohnt sind. Ansonsten wird genau nach → ASCII-Code sortiert, unabhängig davon, ob es sich um Verzeichnisse (Ordner) oder Dateien handelt.IgnoreCaseDiese IndexOption sortiert die Datei-Namen so wie das Windows-User gewohnt sind. Ansonsten wird genau nach → ASCII-Code sortiert, d.h. Großbuchstaben vor Kleinbuchstaben.HTMLTableMit dieser IndexOption wird zur Erzeugung der Liste ein HTML-Tabelle <table> verwendet. Je nach Server-Version wird dazu ein HTML <pre>-Element oder ohnehin bereits eine Tabelle verwendet. (Stellen sie das im HTML-Quelltext einer angezeigten Directory-Liste fest). In den meisten Fällen lässt sich die Tabelle leichter mit → CSS formatieren. |
Directory-Browsing verhindern |
|
DirectoryIndexEs gibt verschiedene Methoden, um unerwünschtes Directory-Browsing zu verhindern. Die einfachste, sicherste und immer anwendbare Methode besteht darin, eine Datei mit dem Namen index.html in jedes einzelne Verzeichnis des Webs zu kopieren.● Jeder Webserver muss damit rechnen, dass von einem Client (Browser) keine Datei, sondern lediglich ein Verzeichnis angefordert wird. In diesem Fall sucht der Webserver im angegebenen Verzeichnis nach einer Datei mit einem vor-eingestellten Namen - meist nach index.html oder index.htm, seltener nach start.html |
Die zu suchenden Datei-Namen sind in der Konfigurations-Variablen DirectoryIndex des (Apache)-Webservers festgelegt. Typische Einstellung: DirectoryIndex index.html index.htm index.php
♣ Test: Versuchen sie einmal, mit einem Browser in ein beliebiges Verzeichnis ihres eigenen Webs zu gelangen, z.B. http://www.meinweb.at/images
Geben sie dazu die Adresse eines Verzeichnisses ohne
den Namen einer Datei an !♥ Wenn in jedem einzelnen Verzeichnis (Ordner) des Webs eine Datei index.html vorhanden ist, dann wird unerwünschtes Directory-Browsing damit unterbunden. |
HomepageEs ist ein weit verbreiteter Irrglaube, dass (lediglich) die Start-Seite des gesamten Webs den Datei-Namen index.html erhalten muss.Das Beispiel rechts zeigt die Minimal-Ausführung einer Datei index.html, die man unverändert in jedes einzelne Verzeichnis kopieren kann. Lediglich die wirkliche 'Homepage', d.h. die Startseite des gesamten Webs wird in diesem Fall zwar genauso benannt, jedoch individuell gestaltet. Diese Datei erfüllt die Minimal-Forderung: Sie verhindert Directory-Browsing und führt bei einem Versuch zur Startseite ihres Webs. |
Beispiel für eine minimale Sicherheits-Datei index.html für jedes Web-Verzeichnis:
<html>
Ersetzen sie die angegebene Web-Adresse (URL) durch jene ihres eigenen Webs.
<body>
</html>
<a href="http://www.meinweb.at">
</body>
Zu meiner Homepage
</a>
|
UmleitungDas Beispiel unten erfüllt den gleichen Zweck, ist jedoch mit etwas mehr Aufwand gestaltet.● Sie können die Datei ohne Änderung in jedes einzeln Web-Verzeichnis kopieren. In diesem Fall ersetzen sie das Wort 'Ziel' z.B. durch 'Homepage und das Attribut href des HyperLinks durch die absolute Web-Adresse ihrer Homepage, z.B. http://www.meinweb.at ● Die automatische Umleitung wird von einem winzigen → Javascript-Programm durchgeführt. Selbst dann, wenn das nicht funktionieren sollte, wird Directory-Browsing zuverlässig verhindert und die Seite mit einem HyperLink angezeigt. |
● Eine individuelle Umleitung - in jedem Verzeichnis auf eine andere Webseite - erfordert ein kleine Anpassung jeder einzelnen Kopie dieser Datei: • Ersetzen sie das sichtbare Wort 'Ziel' durch einen sinnvollen Begriff - je nach Thema. • Tragen sie als Attribut href des HyperLinks die relative Adresse jener Webseite ein, zu welcher die automatische Umleitung führen soll. Das ist normalerweise einfach der Datei-Name, wenn sich das Umleitungs-Ziel im gleichen Verzeichnis befindet. |
|
Beispiel für eine Datei index.html mit
automatischer Umleitung zu einer Webseite ziel.html :
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
<head>
</html>
<meta http-equiv="Content-Type"
content="text/html; charset=utf-8" />
</head><title>Weiterleitung</title> <body onload="location.replace(document.getElementById('ah').href)">
<h1><a id="ah" href="ziel.html"
target="_self">Ziel</a></h1>
</body>
|
|
|
|