Karsten: Index.php umleiten

Hallo Alle,

sonst suche ich immer nur im Archiv und finde dort auch (fast) immer was ich suche. Aber jetzt brauche ich mal hilfe.

Situation:

Ich möchte meine Startseite ggf. mal wechseln können (Vorschaltseite), da ich momentan dafür keinen Inhalt habe soll die nachfolgende Datei geöffnet werden.

Struktur auf dem Server:

www/usr/domain/html/INDEX.PHP        //Startseite
www/usr/domain/html/css/             //CSS-Dateien
www/usr/domain/html/html/            //PHP-Inhalte

Ich möchte vorläufig eine Seite aus dem Ordner www/usr/domain/html/html/ als Startseite öffnen.

Ich habe es per INCLUDE versucht, bekomme da aber Probleme mit den CSS.

Gibt es eine Möglichkeit in der INDEX.PHP einen Verweis zu setzen, der automatisch geöffnet wird?

Gruß,
Karsten

  1. Hi,

    Ich möchte meine Startseite ggf. mal wechseln können (Vorschaltseite), da ich momentan dafür keinen Inhalt habe soll die nachfolgende Datei geöffnet werden.

    verstehe ich das richtig, dass bei Aufruf Deiner Domain ohne von "/" unterschiedlichen Localpart vom Server eine andere Datei als eine index.php (Index.php, INDEX.PHP oder welche Schreibweise auch immer bei Dir vorliegt) assoziiert werden soll?

    Ich habe es per INCLUDE versucht, bekomme da aber Probleme mit den CSS.

    Das ist mir unbegreiflich. CSS kümmert sich nicht um serverseitige Aktionen, da es clientseitig verwendet wird und somit nicht einmal von der Existenz eines Servers weiß.

    Gibt es eine Möglichkeit in der INDEX.PHP einen Verweis zu setzen, der automatisch geöffnet wird?

    Sicher. Aber warum benutzt Du nicht einfach die DirectoryIndex-Direktive Deines Servers, bzw. das entsprechende Äquivalent, wenn es sich bei Deiner Server-Software nicht um Apache handelt?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. Hallo,

      Das ist mir unbegreiflich. CSS kümmert sich nicht um serverseitige Aktionen, da es clientseitig verwendet wird und somit nicht einmal von der Existenz eines Servers weiß.

      So unbegreiflich ist das nicht einmal. Die Angaben der ausgelagerten StyleSheets sind bestimmt nur auf das Unterverzeichnis "./html" abgestimmt. Daher kommt es durch include() zu einer Diskrepanz.

      Gruß aus Berlin!
      eddi

      1. Hi,

        So unbegreiflich ist das nicht einmal. Die Angaben der ausgelagerten StyleSheets sind bestimmt nur auf das Unterverzeichnis "./html" abgestimmt. Daher kommt es durch include() zu einer Diskrepanz.

        was hat denn das damit zu tun? Wo siehst Du eine Diskrepanz bei irgend einem Dateiverzeichnis?

        Cheatah

        --
        X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
        X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
        X-Will-Answer-Email: No
        X-Please-Search-Archive-First: Absolutely Yes
        1. Re:

          Wo siehst Du eine Diskrepanz bei irgend einem Dateiverzeichnis?

          ^^
          Dort wo Du sie nicht siehst ;)

          Gruß aus Berlin!
          eddi

  2. Hallo Karsten,

    das Beste erscheint mir eine temporäre Umleitung via HTTP:

      
    header($_SERVER["SERVER_PROTOCOL"].' 307 Temporary Redirect');  
    header('Location: http://www.die.domain/html/');  
    exit;  
    
    

    header()

    Gruß aus Berlin!
    eddi

    1. Hi,

      das Beste erscheint mir eine temporäre Umleitung via HTTP:

      wieso erscheint Dir ein zusätzlicher Roundtrip als das Beste? Ich halte es für exakt das, was man hier am ehesten vermeiden sollte.

      Cheatah

      --
      X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
      X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Hallo,

        wieso erscheint Dir ein zusätzlicher Roundtrip als das Beste?

        es ist das, was am wenigsten Arbeit mach, dementsprechend sich als wartungsfreundlich erweist. So gibt es, wie in diesem Beispiel zu sehen, keine Probleme mit Referenzen innerhalb der Dokumente. Das einzige, was vielleicht auch noch erwähnt werden sollte, daß es sich ebenso durch Konfiguration des Webservers einrichten läßt. Beispiel Apache: http://httpd.apache.org/docs/2.0/mod/mod_alias.html#redirecttemp

        Ich halte es für exakt das, was man hier am ehesten vermeiden sollte.

        Wieso hälst Du eine Umleitung für vermeidenswert?

        Gruß aus Berlin!
        eddi

        1. Hi,

          wieso erscheint Dir ein zusätzlicher Roundtrip als das Beste?
          es ist das, was am wenigsten Arbeit mach,

          falsch.

          dementsprechend sich als wartungsfreundlich erweist.

          Falsch.

          Ich halte es für exakt das, was man hier am ehesten vermeiden sollte.
          Wieso hälst Du eine Umleitung für vermeidenswert?

          Ist die Frage ernst gemeint? Ich hoffe nicht. Und wenn doch: HTTP ist kein Ping-Pong-Spiel.

          Cheatah

          --
          X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
          X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
          X-Will-Answer-Email: No
          X-Please-Search-Archive-First: Absolutely Yes
          1. Re:

            wieso erscheint Dir ein zusätzlicher Roundtrip als das Beste?
            es ist das, was am wenigsten Arbeit mach,
            falsch.

            Falsch

            dementsprechend sich als wartungsfreundlich erweist.
            Falsch.

            Falsch.

            Ich halte es für exakt das, was man hier am ehesten vermeiden sollte.
            Wieso hälst Du eine Umleitung für vermeidenswert?
            Ist die Frage ernst gemeint? Ich hoffe nicht. Und wenn doch: HTTP ist kein Ping-Pong-Spiel.

            Durch eine Umleitung wird es auch dazu nicht. Die Möglichkeit besteht nach RFC 2616. Da aber ist auch der Knackpunkt. Hättest Du bemängelt, daß dadurch meine vorgeschlagene Methode zu Fehlverhalten durch unterschiedliche Versionen des Protokolls neigt, wäre das Deinem vermutetem Wissenstand gerecht geworden.
             So kann ich mich des Eindrucks nicht erwehren, daß Du, eine Begründung schuldigbleibend, einkleinwenig aufstacheln willst. Muß das sein?

            Gruß aus Berlin!
            eddi

    2. Moin,

      Hallo Karsten,

      das Beste erscheint mir eine temporäre Umleitung via HTTP:

      header($_SERVER["SERVER_PROTOCOL"].' 307 Temporary Redirect');
      header('Location: http://www.die.domain/html/');
      exit;

      
      > [header()](http://de3.php.net/manual/de/function.header.php)  
        
      Ich würde es so machen:  
      `header('Location: http://example.org/html/', true, 307);`{:.language-php}  
        
      Nicht zu vergessen:  
      exit; und RFC 2616:  
      
      > Unless the request method was HEAD, the entity of the  
      > response SHOULD contain a short hypertext note with a hyperlink to  
      > the new URI(s).  
        
      Tschau,  
      Martin
      
  3. Lieber Karsten,

    modifiziere doch Deine index.php, die "normalerweise" aufgerufen wird, so (ungetestet!):

    // vorübergehende "Vorschaltseite":  
    if ($_SERVER['HTTP_REFERER'] != 'http://'.$_SERVER['SERVER_NAME']."/index.php") {  
        include("html/andere_datei.php");  
        exit();  
    }  
    // reguläre Startseite
    

    Diese Lösung hat einen Haken: Dem Browser kann man das Senden des Referrers verbieten. Aber angenommen dem sei nicht so, dann ist die reguläre Startseite nur erreichbar, wenn man unmittelbar von der Vorschaltseite kommt. Da der Browser jedesmal die identische URL anzeigen soll, ist es möglich, dass er den HTML-Code der regulären Startseite nicht annimmt, da er für diese URL bereits Daten in seinem Cache hat. Umgekehrt könnte man auch das Cachen der Vorschaltseite zu verhindern suchen, das der regulären Startseite jedoch nicht, sodass er nach dem Aufruf der regulären Startseite diese im Cache behält, somit auch bei einer "Rückkehr" auf die Startseite auch nur die reguläre Variante anzeigt.

    Oder man verwendet eine Session, in welcher man speichert, ob denn die Vorschaltseite bereits besucht worden ist (ließe sich auf jede beliebige Unterseite der Webpräsenz anwenden -> Frustpotenzial bei Besuchern!), oder man verwendet hierzu Cookies, die der User in seinem Browser allerdings deaktivieren kann, um beim ersten Aufruf einer Seite die Vorschaltseite zuerst anzuzeigen (und danach auf die eigentlich angeforderte weiterzuverlinken).

    Meiner Meinung nach ist eine Vorschaltseite unschön! Ich finde eine in der Startseite eingearbeitete "Ankündigung" besser, da sie mein Surfverhalten nicht beeinträchtigt.

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    1. Erstmal Danke für die Antworten.

      Der Tip mit dem 307 Temp. Redirect hat mir erstmal weitergeholfen.

      Ich werde aber überlegen, ganz auf die Vorschaltseite zu verzichten.

      Gruß,
      Karsten