1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Includes für alle Subdomains

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von floeschen, 28.12.07.

  1. floeschen

    floeschen Horneburger Pfannkuchenapfel

    Dabei seit:
    13.08.06
    Beiträge:
    1.402
    Auf meiner Website betreibe ich mehrere Subdomains. Für viele Dinge, wie die Navigation, brauche ich SSI (Server Side Includes). Mit den SSI-Befehlen, werden verschiedene HTML-Dateien eingebunden.

    Soweit ich das jetzt gemacht habe, muss ich für jede Subdomain die eingebundenen Dateien separat hochladen. Das ist vor allem etwas umständlich, weil damit der Vorteil der Includes, nämlich eine einfachere Aktualisierung, verloren geht.

    So sieht das etwa aus:
    • includes (Ordner auf der Hauptebene)
    • xyz (Ordner auf den eine Subdomain http://xyz.example.com/ verweist)
      • includes
    Im Moment bedeutet das, ich muss die selben Include-Dateien in beide includes-Ordner legen, damit es überall funktioniert.

    Gibt es eine Möglichkeit, mit der man auch von Subdomains aus Includes im Hauptordner einbinden kann?

    Wäre PHP ein Ausweg? Habe zwar nicht vor, mich damit zu befassen, aber was sein muss, muss sein. :D
     
  2. fox_rc

    fox_rc Golden Delicious

    Dabei seit:
    28.12.07
    Beiträge:
    10
    Soweit ich das sehe, müsste es reichen, wenn Du von Deiner Subdomain einfach um eine Ordnerebene "zurückspringst".
    Evtl. sollte das so funktioniere:
    <!--#include file="../includes/header.shtml" -->

    ... oder so:
    <!--#include virtual="includes/header.shtml" -->

    Hier noch ein Link dazu:
    http://de.wikipedia.org/wiki/Server_Side_Includes


    PS: Wenn's funktioniert, dann bitte ich natürlich um Feedback
     
    #2 fox_rc, 28.12.07
    Zuletzt bearbeitet: 28.12.07
  3. floeschen

    floeschen Horneburger Pfannkuchenapfel

    Dabei seit:
    13.08.06
    Beiträge:
    1.402
    Komischerweise funktioniert es nicht. Auch habe ich mich schon vorher bei einschlägigen Seiten schlau gemacht, dort gibt es keine Hilfe für so etwas… o_O

    Meine Include-Dateien haben alle die Endung .html, wobei es da ja nicht drauf ankommt. Bei den Dateien, wo die Includes dann eingebunden sind, habe ich nur .html-Endungen. Den Server bringe ich nachher wieder mit einer Anweisung in der .htaccess-Datei zum Parsen der SSI. Alles funktioniert, nur dieses Zurückspringen in der Ordnerebene will nicht. ;)
     
  4. fox_rc

    fox_rc Golden Delicious

    Dabei seit:
    28.12.07
    Beiträge:
    10
    Bei welchem Provider bist Du?
     
  5. quarx

    quarx Hadelner Sommerprinz

    Dabei seit:
    17.04.05
    Beiträge:
    8.541
    Ist das ein Linux-Server und hast Du einen SSH-Zugang? Dann arbeite doch mit Symlinks ("man ln").
     
  6. fox_rc

    fox_rc Golden Delicious

    Dabei seit:
    28.12.07
    Beiträge:
    10
    ... oder doch PHP

    Versuche es mal mit dieser Zeile:
    <?php include("../includes/header.html") ?>

    Je nach Server solltest Du die Datei (die den PHP-Code enthält) dann wohl in "datei.php" umbenennen.

    PS: Mit einer Strato-Subdomain funktioniert das jedenfalls ;)
     
  7. floeschen

    floeschen Horneburger Pfannkuchenapfel

    Dabei seit:
    13.08.06
    Beiträge:
    1.402
    Es ist zwar ein Linux (Apache) Server, aber einen SSH-Zugang habe ich nicht. Bietet mein Provider Hoststar nicht an. o_O

    Ich bastle gerade an einer PHP-Version meiner Seite herum und erleide dabei noch viele Fehlermeldungen. ;) Wahrscheinlich werde ich es halt so lösen. Vielen Dank für die Hilfe;)
     
  8. fox_rc

    fox_rc Golden Delicious

    Dabei seit:
    28.12.07
    Beiträge:
    10
    "Ich bastle gerade an einer PHP-Version meiner Seite herum" klingt sehr aufwendig.
    Wenn Du nur den o.g. Code in Deine HTML-Seite einfügst und die Datei mit der Endung ".php" ausstattest sollte das eigentlich schon funktionieren.
     
  9. floeschen

    floeschen Horneburger Pfannkuchenapfel

    Dabei seit:
    13.08.06
    Beiträge:
    1.402
    Gerne möchte ich die Navigation in nur einem File haben, die sich aber je nach Seite anpasst und so die aktuelle Seite hervorhebt.

    Bis jetzt bin ich so weit.
    Code:
    <?php
    $normal = "<li>";
    $aktuell = "<li class=\"current\">";
    if ($PHP_SELF = '/index.html') {
        echo $aktuell;
    } else {
        echo $normal;
    }
    ?>
    Die Idee ist folgende. Die Navigation ist so aufgebaut: <ul><li><a><b></b></a></li></ul>

    Um die aktuelle Seite in der Navigation hervorzuheben, muss in den LI-Tag das Attribut class mit dem Parameter current. Sieht dann also so aus: <li class="current">

    Leider spuckt das PHP-Skript noch einige Fehler aus, bzw. es stoppt das Parsen nach der ersten Zeile. o_O
     
  10. fox_rc

    fox_rc Golden Delicious

    Dabei seit:
    28.12.07
    Beiträge:
    10
    Versuche es mal damit.

    Code:
    <?php
    $normal = "<li>";
    $aktuell = "<li class=\"current\">";
    if ([B]$_SERVER['PHP_SELF'] ==[/B] '/index.html') {
        echo $aktuell;
    } else {
        echo $normal;
    }
    ?>
    
    Das funktioniert allerdings nur im Root-Verzechnis. Zum Test lasse ich mir die Variable extra ausgeben.
    Code:
    echo $_SERVER['PHP_SELF'];
    
     
    floeschen gefällt das.
  11. floeschen

    floeschen Horneburger Pfannkuchenapfel

    Dabei seit:
    13.08.06
    Beiträge:
    1.402
    Danke vielmals für den Tip! ;) Kann man aber die Variable $_Server['PHP_SELF'] durch etwas ersetzen, das überall auf der Seite funktioniert?

    Edit: Schon passiert. Hab einfach nur noch PHP_SELF hingeschrieben. ;) Danke vielmals;)

    Schön wärs! :( Leider tut sich gar nichts, unabhängig von der verwendeten Variable.
     
  12. fox_rc

    fox_rc Golden Delicious

    Dabei seit:
    28.12.07
    Beiträge:
    10
    Das verstehe ich nicht ganz.

    Der Kommentar "Das funktioniert allerdings nur im Root-Verzechnis." bezog sich auf den Vergleich mit dem String "/index.html" . Wenn Du die PHP-Abfrage bzw. die Datei mit dem Code in einem Unterordner ausführst bzw. startest, dann ist der Unterordner vorangestellt. (Bsp: "/Unterordner/index.html")
     
  13. floeschen

    floeschen Horneburger Pfannkuchenapfel

    Dabei seit:
    13.08.06
    Beiträge:
    1.402
    Aha! :) Ich dachte, die Variable $_SERVER['PHP_SELF'] läuft nur im Root-Verzeichnis. Sorry

    OK! Alles funktioniert und läuft wie es soll - bis jetzt… ;) Danke für deine Hilfe, aber durch meine Unwissenheit haben sich einige Flüchtigkeitsfehler in das Skript eingeschlichen, die jetzt behoben sind. Alles tut! :)
     

Diese Seite empfehlen