andreas: index.php als Startseite sinnvoll?

Hallo!
Ich habe meinen Server(Apache) so konfiguriert, dass ich eine index.php als Starseite verwenden könnte. Das finde ich im Prinzip sehr sinnvoll, da ich gerne schon auf der Startseite php nutzen würde. Jetzt wollte ich mich vorher aber lieber noch erkundigen, was ihr davon haltet, allgemein denkt ja jeder das eine Startseite immer eine index.htm(l) sein muß, vielleicht gibt derjenige das so ein. Ist die Reihenfolge des DirectoryIndex entscheidend welche Seite aufgerufen wird, wenn nur das Verzeichnis eingegeben wird?
Wie ist das mit Suchmaschinen, hab gehört das die php gar nicht gut leiden können.
Was würdet ihr empfehlen, bzw. wie macht Ihr das?

Grüsse
  Andreas

  1. Hallo Andreas,

    allgemein denkt ja jeder das eine Startseite immer eine index.htm(l) sein muß, vielleicht gibt derjenige das so ein.

    Denkst Du wirklich, daß jemand das index.htm mit eingibt? Der Mensch ist faul, und ein www.deinedomain.de tippt sich kürzer als www.deinedomain.de/index.htm

    Ist die Reihenfolge des DirectoryIndex entscheidend welche Seite aufgerufen wird, wenn nur das Verzeichnis eingegeben wird?

    Ja. Die Zeile wird von links nach rechts hin ausgewertet. Die erste Datei in der Folge die es gibt wird angezeigt.

    Wie ist das mit Suchmaschinen, hab gehört das die php gar nicht gut leiden können.

    Ist eher aus alten Zeiten, diese Aussage. Inzwischen findet man doch kaum mehr größere Seiten die nicht auf PHP, ASP und ähnlinen Sprachen beruhen. Und Einihe Suchmaschinen indizieren sogar die Variablen im Dateinamen mit (also z.B. ...index.php?navi=kontakt&person=chef). Und in Zeiten wo auch schon PDF-, PS-, rtf-Datein mit durchsucht werden - Ja, ich würde mir mit PHP echt keine Sorgen mehr machen.

    Was würdet ihr empfehlen, bzw. wie macht Ihr das?

    100% PHP vom Anfang bis zum Ende (Wo ist das Ende einer Homepage???)

    Grüße aus Würzburg
    Julian

    1. Hi Julian!

      Auf diese Antwort habe ich gehofft ;-)
      Aber nichts desto trotz werde ich noch eine index.htm und index.html mit meta refresh in das Verzeichnis legen - man weiß ja nie! Oder wäre das unklug, wenn irgendwelche Suchmaschinen-Robots dann nur eine leere index.html vorfinden?

      Grüsse
        Andreas

      1. Hallo Andreas,

        also wenn, dann würde ich die ohne refresh machen und nur freundlich einen Link anbieten - oder den Besucher gar nicht merken lassen, daß er eigentlich nicht durch den haupteingang reinkam. Auf Refreshs reagieren die Robots nämlich mit Sicherheit sauer.

        Bin in der Serverkonfiguration nicht ganz so tief drin, müßte aber auch möglich sein, daß Du html-Dateien automatisch durch die php-Dateien ersetzen läßt, sie aber weiterhin die Endung html haben. Weiß jetzt leider nicht mehr wie, bin nur mal zufällig über die Möglichkeit gestolpert.

        Grüße aus Würzburg
        Julian

        1. Hallo Andreas,

          also wenn, dann würde ich die ohne refresh machen und nur freundlich einen Link anbieten - oder den Besucher gar nicht merken lassen, daß er eigentlich nicht durch den haupteingang reinkam. Auf Refreshs reagieren die Robots nämlich mit Sicherheit sauer.

          Ja, das denke ich mir.

          Bin in der Serverkonfiguration nicht ganz so tief drin, müßte aber auch möglich sein, daß Du html-Dateien automatisch durch die php-Dateien ersetzen läßt, sie aber weiterhin die Endung html haben. Weiß jetzt leider nicht mehr wie, bin nur mal zufällig über die Möglichkeit gestolpert.

          Nun ja, leider darf ich an die conf eh nicht ran, daher kann ich das vergessen. Oder was mit .htaccess vielleicht?
          Aber wahrscheinlich ist eine Seite mit kurzem Hinweis und Link die beste Lösung!

          Grüsse
            Andreas

        2. Bin in der Serverkonfiguration nicht ganz so tief drin, müßte aber auch möglich sein, daß Du html-Dateien automatisch durch die php-Dateien ersetzen läßt, sie aber weiterhin die Endung html haben. Weiß jetzt leider nicht mehr wie, bin nur mal zufällig über die Möglichkeit gestolpert.

          das geht (unter Unix) ganz platt mit...

          ln -s index.html index.php
          ln -s index.htm index.php

          ..danach ist egal, welche Datei das nun ist.

          1. Bin in der Serverkonfiguration nicht ganz so tief drin, müßte aber auch möglich sein, daß Du html-Dateien automatisch durch die php-Dateien ersetzen läßt, sie aber weiterhin die Endung html haben. Weiß jetzt leider nicht mehr wie, bin nur mal zufällig über die Möglichkeit gestolpert.
            das geht (unter Unix) ganz platt mit...

            ln -s index.html index.php
            ln -s index.htm index.php

            ..danach ist egal, welche Datei das nun ist.

            Hallo,

            also wenn ich alles richtig verstehe geht es so nicht. Die PHP Datei soll ja HTML heisen, also muss es wenn schon umgekehrt sein:

            ln -s index.php index.html (php ist das Linkziel).

            Und dann klappt es trotzdem nicht, da der Apache beim ziehen des symbolischen Links von einer html Datei ausgeht, und den PHP Code nicht interpretiert.
            Es müsste aber dadurch gehen, dass man in der Configuration des Apache den PHP-Interpreter als Handler für HTML Dateien einträgt, schlisslich ist PHP ja nur eine Dateiendung an der Apache erkennt was er mit der Datei machen soll. Nachteil: alle HTML Dateien werden dann durch den PHP-Interpreter gejagt, kommt zwar raus was rein kam, aber die CPU-Last steigt ein wenig. Die Lösung könnte darin bestehen .HTML als PHP einzutragen, und HTML Dateien ohne PHP Code .htm zu nennen.

            Gruss

            Marko

            1. Moin

              ln -s index.php index.html (php ist das Linkziel).

              ack

              Und dann klappt es trotzdem nicht, da der Apache beim ziehen des symbolischen Links von einer html Datei ausgeht, und den PHP Code nicht interpretiert.

              hmm, das unter anderem auch. Ausserdem sind die wenigsten Apachen konfiguriert um symbolischen Links zu folgen. Man müsste also entweder den Apachen auch in dieser Hinsicht umkonfigurieren, oder das -s wegmachen, das ist sowieso unnötig.

              --
              Henryk Plötz
              Grüße aus Berlin

              1. Hi Henryk,

                Ausserdem sind die wenigsten Apachen konfiguriert um symbolischen
                Links zu folgen.

                Sollten sie aber.
                Das ist nämlich performanter, als es abzuschalten und den armen Apache
                rekursiv durch den gesamten Baum prüfen zu lassen, ob nicht vielleicht
                doch irgendwo ein symbolic link vorliegt.

                Symbolic links zu verbieten ist m. E. ziemlich sinnlos.
                Wenn man verhindern will, daß jemand etwas in den URL-Raum einblendet,
                dann sollte man die zu schützenden Objekte selbst schützen und nicht nur
                den Zugriff via HTTP - es gibt ja schließlich auch noch andere Protokolle,
                und für irgendwas müssen Benutzerkennungen im Betriebssystem ja auch gut
                sein.

                Viele Grüße
                      Michael

  2. Ich habe meinen Server(Apache) so konfiguriert, dass ich eine index.php als Starseite verwenden könnte. Das finde ich im Prinzip sehr sinnvoll, da ich gerne schon auf der Startseite php nutzen würde. Jetzt wollte ich mich vorher aber lieber noch erkundigen, was ihr davon haltet, allgemein denkt ja jeder das eine Startseite immer eine index.htm(l) sein muß, vielleicht gibt derjenige das so ein.

    a) Extrem unwahrscheinlich, daß das mal passiert.
    b) Falls dem so sein sollte, solltest du die Person auf ihren Fehler aufmerksam machen.
    Aber nicht, indem du eine Pseudo-Datei index.html anlegst, in die du "Die richtige Seite heißt index.php" reinschreibst. Suchmaschinen merken davon nichts, weil sie keine Fehlermeldung (das altbekannte 404) vom Server bekommen.
    Da du PHP benutzen kannst, verlege die 404-Fehlermeldungen mittels der Option ErrorDocument lieber auf deine eigene Seite und gib dem Besucher mögliche Alternativen: http://kino-fahrplan.de/programm/ufo.

    Ist die Reihenfolge des DirectoryIndex entscheidend welche Seite aufgerufen wird, wenn nur das Verzeichnis eingegeben wird?

    Ja, aber du solltest eh nicht eine Datei index.php und eine index.html im selben Verzeichnis haben. Das ist irgendwo sinnlos, weil beide den gleichen Inhalt haben sollten (den Index halt).

    Wie ist das mit Suchmaschinen, hab gehört das die php gar nicht gut leiden können.

    Unfug. Für eine Suchmaschine sieht eine PHP-Datei genauso gut oder schlecht aus, wie jede andere "normale" HTML-Datei.
    Wenn man allerdings so dusselig ist und die Seiten alle hinter "index.php?seite1", "index.php?seite2", etc. versteckt, wird das mit einer brauchbaren Indizierung nichts. Die Konstruktion mit dem Fragezeichen war schließlich nie dafür gedacht, die normalen Verzeichnispfade zu ersetzen.

    Was würdet ihr empfehlen, bzw. wie macht Ihr das?

    Siehe oben und zusätzlich:

    Options Multiviews

    in der .htaccess. Damit kannst du die Dateiendungen ganz weglassen. Sehr nützlich, falls du später mal eine HTML-Datei durch eine PHP-Datei ersetzen willst.

    Gruß,
      soenk.e

    1. Hi Soenke!

      Ja, das wäre wirklich die beste Alternative! Also einfach ein php-script als 404.php, und das in die htaccess - soweit habe ich das schonmal gemacht. Nur wie um Himmelswillen ermittelst Du "ähnliche" Seiten?
      Und noch eine Frage, ist das bei alles Seiten so extrem mit der gzip Komprimierung? Muß ich glaub ich auch mal drüber nachdenken! Aber ist nur für html, nicht Bilder..., oder? Geht das auch mit php?

      Grüsse
        Andreas

      1. Ja, das wäre wirklich die beste Alternative! Also einfach ein php-script als 404.php, und das in die htaccess - soweit habe ich das schonmal gemacht. Nur wie um Himmelswillen ermittelst Du "ähnliche" Seiten?

        Das ist recht simpel: PHP hat eine Handvoll Funktionen, um die Ähnlichkeit zweier Texte zu ermitteln, z.B. Levenshtein. Die kannst du im einfachsten Fall auf die Dateinamen in dem betreffenden Verzeichnis anwenden (vorher alle Anhängsel entfernen), auf den gesamten Pfad oder auch noch die Titel einbeziehen.

        Und noch eine Frage, ist das bei alles Seiten so extrem mit der gzip Komprimierung? Muß ich glaub ich auch mal drüber nachdenken! Aber ist nur für html, nicht Bilder..., oder? Geht das auch mit php?

        Bilder sind bereits komprimiert (wenn man Web-übliche Formate wie GIF, JPEG oder PNG benutzt), da nutzt eine zweite Komprimierung obendrauf natürlich nichts mehr.

        Bei Texten ist die Komprimierung eigentlich immer sehr gut, je mehr "Format" und Gleichförmigkeit im Text ist, desto besser. Ich hatte mal vor Jahren einen ganz extremen Fall mit einem Postscript-Text, der deutlich über 95% zusammengeschrumpft ist.
        Die HTML-Dateien auf meinen Seiten bestehen hauptsächlich aus gleichförmigen Tabellen, deshalb ist die Komprimierung auch hier sehr schön zu sehen (im Durchschnitt 1/10 IIRC).

        Die Komprimierung kannst du auf zweierlei Weise machen: Entweder du bzw. dein Server-Betreiber installiert ein Modul namens mod_gzip, das alle Daten, die der Server verschicken möchte, automatisch und transparent komprimiert. Oder du komprimierst vorher, legst beide Dateiversion auf dem Server ab und läßt den Server dann mittels "Options Multiviews" entscheiden, welche er an den Browser schickt - so mache ich es.

        Um die Ausgabe von PHP-Skripten selber zu komprimieren, müßtest du wahrscheinlich alles statt gleich mit echo & Co. auszugeben in einem String speichern und den dann mit der zlib-Funktion gzcompress() komprimieren und an den Browser schicken. Die Sachen außerhalb der <?php..?>-Konstruktion bekommst du da aber nicht mit rein - also alles per PHP.
        Für solche Fälle wäre mod_gzip natürlich ideal, aber kaum ein Server-Betreiber (außer mir:) wird auf deinen Wunsch hin ein Modul installieren.
        Für alles andere, also statische Seiten, finde ich die vorherige Komprimierung praktischer, weil bessere Komprimierung bei weniger Resourcenverbrauch. Aber das ist wohl Geschmackssache.

        Gruß,
          soenk.e

        1. Moin

          Bei Texten ist die Komprimierung eigentlich immer sehr gut, je mehr "Format" und Gleichförmigkeit im Text ist, desto besser. Ich hatte mal vor Jahren einen ganz extremen Fall mit einem Postscript-Text, der deutlich über 95% zusammengeschrumpft ist.

          So extrem ist das gar nicht, das Forum hier hat afaik ähnliche Komprimierungsraten.

          Um die Ausgabe von PHP-Skripten selber zu komprimieren, müßtest du wahrscheinlich alles statt gleich mit echo & Co. auszugeben in einem String speichern und den dann mit der zlib-Funktion gzcompress() komprimieren und an den Browser schicken. Die Sachen außerhalb der <?php..?>-Konstruktion bekommst du da aber nicht mit rein - also alles per PHP.

          Nein, dafür hats ja die output-buffering Funktionen von PHP: http://www.php.net/manual/de/ref.outcontrol.php.

          Ein Beispiel wie man damit einfach eine Komprimierung seiner PHP-Seiten bastelt ist auf http://www.phpbuilder.com/columns/argerich20010125.php3?page=2 zu finden.

          --
          Henryk Plötz
          Grüße aus Berlin

          1. Hi!
            Danke für die Hinweise!
            Ich hab da mal ein bisschen nachgeforscht, da wurde immer

            ob_start("ob_gzhandler");

            empfohlen, da geht das wohl alles von alleine, nur an den Anfang des Scriptes einfügen - was haltet ihr davon?

            Und um nochmal auf eine der vorherigen Fragen zurückzukommen - wie finde ich ähnliche Seiten, so wie auf dem 404 Dokument von soenke?

            Grüsse
              Andreas

            1. Ich hab da mal ein bisschen nachgeforscht, da wurde immer

              ob_start("ob_gzhandler");

              empfohlen, da geht das wohl alles von alleine, nur an den Anfang des Scriptes einfügen - was haltet ihr davon?

              Der ist mir heute beim Neuinstallieren von PHP auch über den Weg gelaufen: Scheint extra dafür da zu sein, probier's aus, wäre praktisch.

              Und um nochmal auf eine der vorherigen Fragen zurückzukommen - wie finde ich ähnliche Seiten, so wie auf dem 404 Dokument von soenke?

              Ich könnte schwören, daß ich das bereits beschrieben hatte: Verzeichnis auslesen und Dateinamen (ohne Erweiterung) mit Levenshtein auf Ähnlichkeit prüfen, eventuell noch weitere Daten dazuziehen, z.B. <title>.
              Alles, was du dazu brauchst findest du unter "Directory functions" und "String functions".

              Gruß,
                soenk.e

            2. Hi Andreas,

              Ich hab da mal ein bisschen nachgeforscht, da wurde immer
              ob_start("ob_gzhandler");
              empfohlen, da geht das wohl alles von alleine, nur an den Anfang
              des Scriptes einfügen - was haltet ihr davon?

              vorweg: Ich bin Partei (pro mod_gzip) und habe über den ob_gzhandler eher widersprüchliche Aussagen im Hinterkopf.

              Eine auf PHP reduzierte Möglichkeit für etwas, das m. E. gefälligst der HTTP-daemon selbst zu erledigen hat, widerstrebt mir irgendwie.
              Aber PHP läuft ja ggf. auch auf Webservern, die kein mod_gzip haben (können, dürfen etc.). Mit dem Einbau der Komprimierungsmethode in Dein PHP-Skript selbst bist Du in dieser Hinsicht "autark".
              Einen Versuch dürfte es allemal wert sein, da es an Deiner Programmstruktur kaum etwas ändern sollte. Genau wie bei mod_gzip bringst Du damit natürlich zusätzliche CPU-Last auf die Maschine.

              Viele Grüße
                    Michael

              1. Hi!

                Genau wie bei mod_gzip bringst Du damit natürlich zusätzliche CPU-Last auf die Maschine.

                Genau das ist mein einziges Problem. Wie kann ich denn die Komprimierung in diesem Fall messen? Wenn das jetzt nur ein paar % komprimiert, und die CPU werweißwie fordert, dann laß ich das besser, dachte nur für die ganzen 56K Modems und den Traffic!

                Grüsse
                 Andreas