Martin: lokale Seiten und Web-Seiten laden ohne korrektur der links (Apache)

Hallo !

Zum testen von HTML-Seiten habe ich unter WinNT den Apache-Server installiert und greife ueber die IP 127.0.0.1 auf alle lokal im Verzeichnis htdocs gespeicherten Seiten zu. Leider muss ich beim
kopieren der Seiten auf den Web-Server alle links entsprechend umreferenzieren.

Deshalb habe ich alle Verzeichnisse im htdocs-Verzeichnis entsprechend
der Adresse des Web-Servers benannt (z.B. www.hompage.de).
Im Browser habe ich einen Proxy unter der IP 127.0.0.1 eingerichtet, damit der Browser direkt lokal auf
die HTML-Seiten im htdocs-Verzeichnis zugreift.

Problem: Wenn ich auf eine HTML-Seite im Browser mit "http://www.homepage.de/index.html" aufrufe
erscheint nur die Apache-Seite, die die Funktionsfaehigkeit des Servers bestätigt.
Fuege ich zwischen "http://" und "www.homepage.de/index.html" eine beliebige Zeichenkette gefolgt von
einen "/" ein (z.B. "http://x/www.homepage.de/index.html"), dann wird die Seite aufgerufen. Die links
funktionieren dann allerdings nicht !

Weiss jemand Rat ! Ich denke es ist ein Apache-Konfigurationsproblem.
Vielen Dank im voraus !

  1. Hallo Martin,

    so ganz verstehe ich Dein Problem zwar nicht, aber ich rate einfach mal ein bisschen ;-)

    Zum testen von HTML-Seiten habe ich unter WinNT den Apache-Server installiert und greife ueber die IP 127.0.0.1 auf alle lokal im Verzeichnis htdocs gespeicherten Seiten zu. Leider muss ich beim
    kopieren der Seiten auf den Web-Server alle links entsprechend umreferenzieren.

    warum das? Am besten arbeitest Du mit relativen statt mit absoluten Verweisen, also:

    Annahme einer Verzeichnisstruktur (sowohl lokal als auch im Dokumentenverzeichnis auf dem Server Deines Providers; jeweils ausgehend vom Verzeichnis htdocs):

    index.html
    Verzeichnis "seiten" mit den Dateien seite1.html ... seite999.html
    Verzeichnis "images" mit der Datei logo.gif und anderen Grafiken

    Deine Startseite ist http://www.homepage.de/index.html mit einem Verweis auf seite1.html im Verzeichnis "seiten". Du hast jetzt zwei Möglichkeiten, von index.html auf diese Seite zu verweisen:
    1. <a href="http://www.homepage.de/seiten/seite1.html>...</a>
    2. <a href="seiten/seite1.html>...</a>

    1. ist ein absoluter Verweis (und funktioniert nur beim Aufruf Deiner Seiten über die Angabe der vollständigen URL/Internet-Adresse, also online)
    2. ist ein relativer Verweis (und funktioniert auch lokal, egal welche Verzeichnisstruktur sich unterhalb Deines Webserver-Dokumentverzeichnisses befindet)

    Weiteres Beispiel, seite1.html bindet ein Logo ein:
    1. <img src="http://www.homepage.de/images/logo.gif" ...>
    2. <img src="../images/logo.gif" ...>

    1. absoluter, 2. relativer Verweis.
    Versuche, in Deinen Seiten eigene Seiten/Grafiken/Dateien ohne "http://..." bzw. "file:///C/html/..." (also ohne absolute Links) aufzurufen, und du kannst diese Seiten ohne Änderungen auf den Server Deines Providers übertragen.

    Zum lokalen Testen gibst Du dann "http:/127.0.0.1/index.html" ein, und online "http://www.homepage.de/index.html".

    Deshalb habe ich alle Verzeichnisse im htdocs-Verzeichnis entsprechend
    der Adresse des Web-Servers benannt (z.B. www.hompage.de).
    Im Browser habe ich einen Proxy unter der IP 127.0.0.1 eingerichtet, damit der Browser direkt lokal auf
    die HTML-Seiten im htdocs-Verzeichnis zugreift.

    Problem: Wenn ich auf eine HTML-Seite im Browser mit "http://www.homepage.de/index.html" aufrufe
    erscheint nur die Apache-Seite, die die Funktionsfaehigkeit des Servers bestätigt.
    Fuege ich zwischen "http://" und "www.homepage.de/index.html" eine beliebige Zeichenkette gefolgt von
    einen "/" ein (z.B. "http://x/www.homepage.de/index.html"), dann wird die Seite aufgerufen. Die links
    funktionieren dann allerdings nicht !

    Weiss jemand Rat ! Ich denke es ist ein Apache-Konfigurationsproblem.

    Das ist möglich, aber ich begreife leider nicht ganz, was Du da tust.

    "http://127.0.0.1/index.html" (bzw. "http://localhost/index.html") sollte die Index-Seite aufrufen, die im Document-Root-Verzeichnis Deines lokalen Apache liegt; das ist standardmäßig die Seite, die Dir sagt, dass Du den Apache erfolgreich installiert hast. Die musst du natürlich durch Deine eigene Index-Seite ersetzen.
    Und "http://www.homepage.de/index.html" sollte normalerweise die Seite anzeigen, die Du bei Deinem Provider als Index-Seite hochgeladen hast.
    "http://x/..." sieht mir recht undefiniert aus (eigentlich müsste der Browser lokal und im Internet nach dem Host "x" suchen und dann eine Fehlermeldung ausgeben, weil es den Host nicht gibt).

    Wie schon gesagt, ich begreife nicht so ganz, was Du gemacht hast. Evtl. wären die Teile der Apache-Konfigurationsdatei httpd.conf (heißt die unter Windows auch so?) ganz hilfreich, die du geändert hast.

    Viele Grüße,
    Heiko

    (in der Hoffnung, dass vielleicht einer der Profis meine Anfängerfehler in obigem Posting korrigiert)