Gerrit: Finden Suchmaschinen meine mit PHP erstellten Seiten?

Hallo,

ich hab da vielleicht etwas theoretische Verständnisfragen und hoffe, dass Ihr sie mir bitte beantworten könntet?

Angenommen, auf meinem Server www.test.de liegt nur die index.PHP, die alle für einen kompletten Internetauftritt benötigten Bausteine selbst enthällt oder diese über eine SQL-Datenbank bezieht (die Bausteine sind also für die Außenwelt so ohne weiteres nicht sichtbar).

Per .htaccess leite ich alle Anfragen an index.PHP weiter

Je nach angefragter URL (z.B. www.test.de/tiefer/hallo.html) baut index.PHP die richtige HTML-Seite zusammen und schickt sie an den Anfragenden zurück.

Nun die Fragen:

1. Wie schafft meine index.PHP es, dass im Nutzerbrowser in der Adresszeile eben nicht index.PHP steht, sondern die von ihm angefragte URL?

2. Wie verhält sich das Ganze bei Suchrobotern? Interessieren die sich nur für Dateien, die direkt auf dem Server zu finden sind? (Denn dann ist der obige Ansatz kein guter, weil ich auf jeden Fall meine "virtuellen" HTML-Seiten in den Trefferlisten so sehen möchte, wie wenn sie tatsächlich auf dem Server lägen)

Vielen Dank schon mal.
Gruß
Gerrit

  1. Hi,

    Angenommen, auf meinem Server www.test.de ...

    du bist also der Serveradmin der Stiftung Warentest?
    Nein, sicher nicht. Also nutze bitte nicht deren Domain für deine Beispiele, sondern verwende dafür die Domainnamen, die extra für Beispiele vorgesehen sind.

    Je nach angefragter URL (...) baut index.PHP die richtige HTML-Seite zusammen und schickt sie an den Anfragenden zurück.

    Okay, wird auf Tausenden von Webauftritten so in der Art gemacht.

    1. Wie schafft meine index.PHP es, dass im Nutzerbrowser in der Adresszeile eben nicht index.PHP steht, sondern die von ihm angefragte URL?

    Durch geeignete Serverkonfiguration (URL Rewriting, Apache-Modul mod_rewrite). Prinzip: Ankommende Requests werden serverintern nach einem bestimmten Muster "umgebaut", so dass von außen eine andere Verzeichnisstruktur sichtbar ist als die tatsächlich existierende.

    1. Wie verhält sich das Ganze bei Suchrobotern? Interessieren die sich nur für Dateien, die direkt auf dem Server zu finden sind?

    Die "sehen" auch nur HTTP. Ob sie nun /impressum.htm oder /9123/72.html oder /index.php?page=4 oder /contact sehen, ist im Prinzip egal. Alles sind mehr oder weniger normale URLs, nur für uns Menschen sehen die einen gefälliger aus als die anderen.

    Ciao,
     Martin

    --
    Wenn alle das täten, wass sie mich können,
    käme ich gar nicht mehr zum Sitzen.
  2. Angenommen, auf meinem Server www.test.de liegt nur die index.PHP, die alle für einen kompletten Internetauftritt benötigten Bausteine selbst enthällt oder diese über eine SQL-Datenbank bezieht (die Bausteine sind also für die Außenwelt so ohne weiteres nicht sichtbar).

    Per .htaccess leite ich alle Anfragen an index.PHP weiter

    Je nach angefragter URL (z.B. www.test.de/tiefer/hallo.html) baut index.PHP die richtige HTML-Seite zusammen und schickt sie an den Anfragenden zurück.

    Nun die Fragen:

    1. Wie schafft meine index.PHP es, dass im Nutzerbrowser in der Adresszeile eben nicht index.PHP steht, sondern die von ihm angefragte URL?

    durch mod_rewrite und rein server-internes Umschreiben statt redirect

    RewriteEngine on
    RewriteCond %{REQUEST_URI} !index.php   #Vermeide Endlosschleifen
    RewriteCond %{REQUEST_URI} !.[a-z]+$   #Keine Uris auf pfade an index.php
    RewriteRule ^.*$ index.php?path=$1 [L,QSA]

    1. Wie verhält sich das Ganze bei Suchrobotern? Interessieren die sich nur für Dateien, die direkt auf dem Server zu finden sind?

    Bots sind normale Agents. Sie verhalten sich nicht anders wie andere Browser.

    (Denn dann ist der obige Ansatz kein guter, weil ich auf jeden Fall meine "virtuellen" HTML-Seiten in den Trefferlisten so sehen möchte, wie wenn sie tatsächlich auf dem Server lägen)

    Dein Ansatz ist blos unfertig

    mfg Beat

    --
    ><o(((°>           ><o(((°>
       <°)))o><                     ><o(((°>o
    Der Valigator leibt diese Fische
  3. Hi,

    1. Wie schafft meine index.PHP es, dass im Nutzerbrowser in der Adresszeile eben nicht index.PHP steht, sondern die von ihm angefragte URL?

    gar nicht. Das macht der Server - indem er etwas *nicht* macht, nämlich dem Client zu sagen, dass er eine andere URL anfordern soll. Lerne, dass zwischen einer URL und irgendwelchen Dateien nicht der geringste Zusammenhang besteht, solange kein solcher geschaffen wird[1]. Es müssen nicht einmal Dateien existieren.

    1. Wie verhält sich das Ganze bei Suchrobotern?

    Niemand außer dem Server weiß etwas über Dateien, die dort vorliegen mögen. Suchroboter und andere Maschinen, z.B. Browser, sehen ausschließlich die URL. Es lassen sich keinerlei Rückschlüsse auf serverseitig verwendete Techniken treffen.

    Interessieren die sich nur für Dateien,

    Ausschließlich der Server interessiert sich (ggf.) für Dateien. Niemand sonst. Jeder andere interessiert sich für Ressourcen.

    Cheatah

    [1] In den simpelsten Default-Einstellungen von Servern passiert dies beispielsweise.

    --
    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
  4. Vielen Dank Euch beiden!!!

    du bist also der Serveradmin der Stiftung Warentest?

    Oh, schäm, da hab ich überhaupt nicht dran gedacht. Ich werde Deinen Rat befolgen, Martin.

    mod_rewrite

    Cool! Und danke für den Link, Martin.

    Bots sind normale Agents.
    Die "sehen" auch nur HTTP.

    Ja, bestimmt hatte ich das schon irgendwo mal gelesen. Aber wenn man so im Dickicht stochert, sieht man den Wald halt nicht mehr. Sehr beruhigende Antwort.

    Beim Stöbern nach Suchrobotern und Co. habe ich gerade erstmalig etwas über XML-Sitemaps gelesen und da dachte ich zunächst: klasse, das ist so in etwa schon genau das, was ich mittels PHP eh schon vorhalte.

    Bevor ich mich jetzt aber in XML stürze, sagt mir doch nur kurz, was Ihr von der XML Sitemap in Bezug auf die Nutzung für eigene Zwecke haltet?

    Nochmals vielen Dank!
    Gruß
    Gerrit

    1. Bevor ich mich jetzt aber in XML stürze, sagt mir doch nur kurz, was Ihr von der XML Sitemap in Bezug auf die Nutzung für eigene Zwecke haltet?

      Definiere "eigene Zwecke" :)

      1. Bevor ich mich jetzt aber in XML stürze, sagt mir doch nur kurz, was Ihr von der XML Sitemap in Bezug auf die Nutzung für eigene Zwecke haltet?

        Definiere "eigene Zwecke" :)

        Mhm, also, das, was ich am bauen bin, nennt man wohl CMS - wobei ich mir nicht anmaße, allein ein komplettes CMS auf die Beine zu stellen. Will ich auch gar nicht.

        Nach ein paar Dutzend Websites aber, die ich schon fertiggestellt hatte, ärgerte mich das ewige Kopieren doppelter Daten. Z.B. die Struktur eines Projektes lege ich mit der index.html grundsätzlich fest, die anderen Seiten sind größtenteils nur leicht modifizierte Versionen davon.

        Also kommt man irgendwann dahin, daß es sinnvoll ist, eine projektweite Variable vorzuhalten, in der der logische Aufbau des Internetauftrittes auf die realen Serveradressen gemapt wird (oder eben die PHP Outputs). Und die weitere nützliche Dinge beinhaltet wie z.B. Aliases für die URIs, wie sie in HTML dargestellt werden sollen.

        Wenn jetzt also meine Variable eh schon so etwas ähnliches ist, wie die XML-Sitemap und die XML Variante nützlicher erscheint, würde ich gerne die XML-Sitemap für meine Zwecke erweitern und dann statt der PHP Variable nehmen.

        Wenn es denn sinnvoll ist und XML das kann...
        Und wie gesagt, von XML habe ich (noch) keine Ahnung...

        Gruß
        Gerrit

        1. Wenn es denn sinnvoll ist und XML das kann...

          XML kann das schon, aber sinnvoll ist es nicht.

          Und wie gesagt, von XML habe ich (noch) keine Ahnung...

          Ich würde es umgekehrt machen und die Sitemap-XML aus deiner "Variablenliste" erstellen.

          In den Grundzügen ist XML ist wie HTML (genauer gesagt SGML) nur etwas "strenger" - wenn du auf Namensräume verzichtest, ist das schnell erlernt.

          Abfragesprachen wie DOM oder XPath sind das eigentlich interessante und "komplizierte".

          1. Ich würde es umgekehrt machen und die Sitemap-XML aus deiner "Variablenliste" erstellen.

            Genau, ich glaub, so mache ich es.
            Danke, suit.

            Gruß
            Gerrit