mibe: Url abfangen

Hallo allerseits,
ich sitze gerade an einem Relaunch eines Webprojekt, bei dem die alten Seiten nicht mehr verhanden sein werden. Ich möchte aber alles Google links mitnehmen. Ich habe bereits eine htaccess mit einer rewriteRule 301. Die bezieht sich allerdings auf die domain an sich und verweist alle "gegoogelten" Einträge auf ne 404. Und jetzt kommts.
Ich möchte dem Besucher im Text dieser Seite die URL anzeigen, die er in Google angeklickt hat und ihn auf die Startseite verweisen.

Wie "fange" ich die Url ab und gebe sie aus?

Bsp.: Sie haben domain.tld/unterverzeichnis_eins/unterverzeichnis_zwei ausgewählt. Leider existiert.....

Dadurch dürften die Einträge erstmal in Google bleiben und die 404 Seite nicht als double content angezeigt werden. Das ist der Grund für die Maßnahme.
Kann mir da jemand helfen?

  1. Kann mir da jemand helfen?

    Du schreibst etwas wirr - aber bitte: leite sämtliche 404-Seiten auf ein Script um (404.php) - darin wertest du dann den REQUEST_URI aus, zeigst ihn an - was auch immer. Und lieferst 404 Not Found als Status-Code aus.

    1. Kann mir da jemand helfen?

      Du schreibst etwas wirr - aber bitte: leite sämtliche 404-Seiten auf ein Script um (404.php) - darin wertest du dann den REQUEST_URI aus, zeigst ihn an - was auch immer. Und lieferst 404 Not Found als Status-Code aus.

      Ja das mit dem Erklären ist nicht ganz so meins. Aber danke erstmal. Jetzt hab ich ne Vorstellung. Allerdings sehe ich schon Probleme mit dem CMS auf mich zukommen. Aber danke erstmal. Werds versuchen.

      1. hi,

        Ja das mit dem Erklären ist nicht ganz so meins. Aber danke erstmal. Jetzt hab ich ne Vorstellung. Allerdings sehe ich schon Probleme mit dem CMS auf mich zukommen. Aber danke erstmal. Werds versuchen.

        Welches CMS und wo hängt es mit dem Verständnis?

        Du kannst den Referer des ankommenden Users, sofern vorhanden, auslesen und dem entsprechend reagieren.
        Mit ein bisschen Glück findest du den Referer in der $_SERVER-Variable unter Referer.
        Allerdimgs kann ich, und fast jeder andere User den Referer deaktivieren, dass musst du berücksichtigen.

        Und was Google und deine Indexierung angeht würde ich mir vorerst keine grosse hoffnung mehr machen.

        mfg

        1. Hi Malcolm Beck´s,
          danke für die Antwort. Ich werde mich morgen mal dran machen und mich ggf. nochmal melden. Mir reicht nicht früher.
          Das CMS: Typo3

          Liebe Grüße

          1. function main($param, $ref) {

            Nachtrag: in $param und $ref steht dir das zur Verfügung, was das Errorhandling bereits ermittelt hat. Da steht unter anderem die Aufgerufene Seite drin (bzw. der Pfad) und jene, die dem Request am ähnlichsten ist bzw. die nächste darüberliegende usw.

          2. Hi Malcolm Beck´s,
            danke für die Antwort. Ich werde mich morgen mal dran machen und mich ggf. nochmal melden. Mir reicht nicht früher.
            Das CMS: Typo3

            TYPO3 hat bereits ein fix-fertiges mitgeliefertes Errorhandling - das ist auch ohne weitere Konfigurationsänderungen aktiv - die Fehlermeldungskästchen sind aber etwas nichtssagend und "abschreckend".

            localconf.php:

            Die einfache Variante (schmutzig):
            $TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = '404.php';

            In dem PHP-File kannst du machen was du willst.

            Komplexer mit einer eigenen Extension:

            $TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 'USER_FUNCTION:typo3conf/ext/extkey/foo.php:user_404klasse->main';

            class user_404klasse {  
                function main($param, $ref) {  
            		header($_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found');  
                            echo $_SERVER['REQUEST_URI'] . 'gibs nicht';  
                }  
            }
            

            Diese Klasse kann z.B. auch tslib_pibase erweitern und somit die Ausgabe direkt in der fertig gerenderten Seite durchführen.

            ggf. sollte ich hierzu einen Artikel und eine Anleitung schreiben :p

            1. $TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 'USER_FUNCTION:typo3conf/ext/extkey/foo.php:user_404klasse->main';

              nleitung schreiben :p

              Das kann natürlich dann in die jeweilige ext_localconf.php ;)

              1. $TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 'USER_FUNCTION:typo3conf/ext/extkey/foo.php:user_404klasse->main';
                nleitung schreiben :p

                Das kann natürlich dann in die jeweilige ext_localconf.php ;)

                Hi suit,
                vielen Dank erstmal. super support hier. Ich werde leider erst morgen dazu kommen, das zu testen. Werde dann ggf. nochmal ein Feedback abgeben.
                vielen Dank bis dahin.

                1. $TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 'USER_FUNCTION:typo3conf/ext/extkey/foo.php:user_404klasse->main';
                  nleitung schreiben :p

                  Das kann natürlich dann in die jeweilige ext_localconf.php ;)

                  Hi suit,
                  vielen Dank erstmal. super support hier. Ich werde leider erst morgen dazu kommen, das zu testen. Werde dann ggf. nochmal ein Feedback abgeben.
                  vielen Dank bis dahin.

                  Hab doch noch Probleme, das ganze in einer bereits vorhandenen Seite unterzubringen. Solltest du nochmal das Bedürfnis haben, mir unter die Arme zu greifen, würde ich dich nicht aufhalten wollen :)
                  Liebe Grüße

                  1. $TYPO3_CONF_VARS['FE']['pageNotFound_handling'] = 'USER_FUNCTION:typo3conf/ext/extkey/foo.php:user_404klasse->main';
                    nleitung schreiben :p

                    Das kann natürlich dann in die jeweilige ext_localconf.php ;)

                    Hi suit,
                    vielen Dank erstmal. super support hier. Ich werde leider erst morgen dazu kommen, das zu testen. Werde dann ggf. nochmal ein Feedback abgeben.
                    vielen Dank bis dahin.

                    Hab doch noch Probleme, das ganze in einer bereits vorhandenen Seite unterzubringen. Solltest du nochmal das Bedürfnis haben, mir unter die Arme zu greifen, würde ich dich nicht aufhalten wollen :)
                    Liebe Grüße

                    Ergänzend: ich habe das ganze über das Typo3 Errorhandling realisiert. Weiß aber leider nicht, wie schon erwähnt, wie ich das Ganze in ner beliebigen Unterseite unterbringen soll.
                    Liebe Grüße

                    1. Ergänzend: ich habe das ganze über das Typo3 Errorhandling realisiert. Weiß aber leider nicht, wie schon erwähnt, wie ich das Ganze in ner beliebigen Unterseite unterbringen soll.

                      Leg' eine Seite an und lies' diese mittels readfile in der Etension bzw. im Script aus - das ist soweit ich sagen kann die besten Möglichkeit. Der enzige Haken: du verursachst damit im Log einen 404 gefolgt von einem 200 Eintrag.

  2. Moin!

    ich sitze gerade an einem Relaunch eines Webprojekt, bei dem die alten Seiten nicht mehr verhanden sein werden. Ich möchte aber alles Google links mitnehmen. Ich habe bereits eine htaccess mit einer rewriteRule 301. Die bezieht sich allerdings auf die domain an sich und verweist alle "gegoogelten" Einträge auf ne 404. Und jetzt kommts.
    Ich möchte dem Besucher im Text dieser Seite die URL anzeigen, die er in Google angeklickt hat und ihn auf die Startseite verweisen.

    Wie "fange" ich die Url ab und gebe sie aus?

    Bsp.: Sie haben domain.tld/unterverzeichnis_eins/unterverzeichnis_zwei ausgewählt. Leider existiert.....

    Dadurch dürften die Einträge erstmal in Google bleiben und die 404 Seite nicht als double content angezeigt werden. Das ist der Grund für die Maßnahme.

    Wird nicht funktionieren. Der Google-Bot wird die alten URLs auch irgendwann wieder aufrufen. Dann bemerkt er eine Weiterleitung auf eine Seite mit Status 404 - die Seite gibts also nicht mehr. Und dementsprechend wird sie aus dem Index geworfen.

    Wenn du dem Besucher einen guten Service bieten willst, dann bietest du für sämtliche alten URLs, die inhaltlich weiterbestehen, einen permanenten Redirect auf die neue URL an (das nutzt Google dann auch zum Update der URL in dem Suchergebnis, unter Beibehaltung der Pageranks etc.), und für alle Seiten, die nicht mehr weiter bestehen, lieferst du keinen Status 404, sondern Status 410 - auf der Seite kannst du dann dem menschlichen Besucher erklären, dass die von ihm aufgerufene Seite nicht mehr da ist (die URL an dieser Stelle zu nennen hielte ich für überflüssig - die interessiert ihn nicht wirklich, und wenn er sie wissen wollte, könnte er zurück zu Google und sie nochmal angucken) und er auf die Startseite gehen könnte. Und die Suchmaschinenbots erkennen am Status 410, dass dieses Suchergebnis absichtlich vom Server entfernt wurde, und löschen es noch deutlich schneller aus dem Index.

    Double Content ist übrigens kein Problem für Suchmaschinen. Er führt auch zu keinerlei Bestrafung. Suchmaschinen möchten lediglich keine inhaltlich identischen, doppelten Seiten in den Suchergebnissen anzeigen, und filtern deshalb die Duplikate heraus. Relevant wird das Thema dann, wenn man als Anbieter beeinflussen möchte, welches Ergebnis übrig bleiben soll.

    - Sven Rautenberg