Hopsel: Redirect via Header verhindern

Beitrag lesen

Hi Edgar!

Ein dickes Dankeschön, dass du dich so intensiv mit meinem Problem auseinandersetzt.

Damit die Inhalte aber indexiert werden können, benötige ich die vollständigen Seiteninhalte.
Das hat aber nichts damit zu tun, dass einer der Nutzer einen HTTP-Header (willentlich) setzt.

Ähm. Nein. Ich kann aber nicht beeinflussen welcher Code von Nutzern in das CMS geschrieben wird.

Das CMS (Redaxo) gibt mir dabei die Artikel mit Hilfe der Ausgabepufferfunktionen zurück. Ist innerhalb eines solchen Artikels eine Weiterleitung, so wird diese ausgeführt und führt somit zum Skriptabbruch.
Nach RFC 2616; 10.3.2, 10.3.3 und 10.3.8 soll zwar immer ein kleiner Text begleitend ausgegeben werden, jedoch dürfte dessen Inhalt für eine Suche ohne Relevanz sein.

Außerdem ist es vollkommen irrelevant für mein Skript.
Das benötigt die Inhalte der Seiten, egal, um welche es sich handelt.

So das Script abbricht, ist es schlampig programmiert.

Ich versuch noch mal Schritt für Schritt zu erklären, wie das Alles abläuft.

1. Ein Artikel wird aus mehreren Blöcken zusammengestellt.
2. Ein Block enthält z. B. folgenden Code:
   header('Location: http://example.org');
3. Mein Skript bekommt über eine CMS-interne Funktion den Inhalt des Artikels.
   Diese Funktion arbeitet mit der Ausgabepufferung von PHP:
   -> Die Weiterleitung wird ausgeführt
5. Mein Skript wird nicht mehr ausgeführt, da die Weiterleitung erfolgte.

Da ich für meine Volltextsuche allerdings die Inhalte aller Artikel benötige, können eben auch solche "schwarze Schafe" enthalten sein.
Jetzt ist es beim Aufbau des Suchindex´ natürlich suboptimal (eher inakzeptabel), wenn das Skript dabei abbricht und die Indexierung nicht fortgeführt wird.

Da mir das CMS keine Funktion anbietet, an den Quellcode der Artikel in Textform zu gelangen, suchte ich eine Möglichkeit, Weiterleitungen zu verhindern. (Im übrigen kann die Indexierung ja auch nicht über den Quellcode, der u. a. auch PHP-Code enthalten kann, erfolgen, sondern muss ja mit der eigentlichen Frontendausgabe arbeiten.)

Ich hoffe, ich verstehe deine nachfolgende Antwort richtig und kann sie angemessen kommentieren.

Weiterhin ist mir aber auch nicht klar, warum Ausführung von PHP-Code nötig sein soll, wenn für eine Suche der Ausgabepuffer indiziert wird, der möglicherweise auf Konditionen unterschiedlichen Besuchern basiert.

Eine Suche in dynamischen Seiten, die auf unterschiedliche Parameter auch unterschiedlich reagieren, wird anders realisiert und erfordert die Indexierung von zusätzlichen DB-Spalten.

Im Cache ginge die Kondition jedenfalls verloren. So sehe ich nach meinem Verständnis file_get_contents() keineswegs als "optimal".

Das ist nicht das Problem. Die Artikel des CMS sind p. d. statisch.

Die Ausführung von PHP-Code innerhalb der Artikel ist nötig, weil die Suche ja die eigentlichen Inhalte indexieren soll.
Sie darf aber meine Indexierung nicht stoppen.

Stell dir vor, in einem Artikel wird ein Liste mit Informationen aus der Datenbank generiert. Soll jetzt der PHP-Code, der die Liste erzeugt oder die Liste selbst indexiert werden?

MfG H☼psel

--
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)