Signatur
Beschreibung
output_reset_rewrite_vars() löscht alle URL-Rewriter-Variablen, die zuvor über output_add_rewrite_var() hinzugefügt wurden. Der URL-Rewriter ist ein Output-Handler, der automatisch bestimmte Name-Wert-Paare als GET-Parameter an relative URLs im HTML-Ausgabestream anhängt – beispielsweise um Session-IDs transparent weiterzugeben, wenn Cookies nicht verfügbar sind.
Nachdem output_reset_rewrite_vars() aufgerufen wurde, werden keine weiteren Variablen mehr an URLs angehängt, bis erneut Variablen über output_add_rewrite_var() registriert werden. Die Funktion wirkt sich jedoch nur auf die manuell hinzugefügten Variablen aus – Session-bezogene Rewrite-Variablen (z. B. aus session_start() mit transparenter Session-Verwaltung) werden durch die PHP-Konfiguration session.use_trans_sid gesteuert und bleiben davon unberührt.
Diese Funktion ist besonders nützlich, wenn man innerhalb eines Skripts verschiedene Abschnitte der Ausgabe mit unterschiedlichen Sätzen von URL-Parametern erzeugen möchte: Man setzt die bestehenden Variablen zurück und registriert neue, bevor der nächste Ausgabeblock gerendert wird.
Rückgabewert
true bei Erfolg zurück, false im Fehlerfall (z. B. wenn der URL-Rewriter-Output-Handler nicht aktiv ist).Beispiele
Rewrite-Variablen hinzufügen und anschließend zurücksetzen
<?php
// URL-Rewriter aktivieren und Variable registrieren
output_add_rewrite_var('token', 'abc123');
output_add_rewrite_var('lang', 'de');
// Ausgabe: URLs werden um ?token=abc123&lang=de erweitert
echo '<a href="seite.php">Seite</a>'; // => <a href="seite.php?token=abc123&lang=de">Seite</a>
// Alle Rewrite-Variablen zurücksetzen
output_reset_rewrite_vars();
// Ausgabe: URLs werden nicht mehr verändert
echo '<a href="seite.php">Seite ohne Parameter</a>'; // => <a href="seite.php">Seite ohne Parameter</a>
?>
Variablen für verschiedene Seitenabschnitte wechseln
<?php
// Erster Abschnitt: Benutzer-spezifische Parameter
output_add_rewrite_var('user_id', '42');
echo '<a href="profil.php">Mein Profil</a>';
// Zurücksetzen und neue Parameter für nächsten Abschnitt setzen
output_reset_rewrite_vars();
output_add_rewrite_var('section', 'news');
echo '<a href="inhalt.php">Neuigkeiten</a>';
?>
// Wichtig · Fallstricke
Voraussetzung: Damit output_reset_rewrite_vars() und output_add_rewrite_var() wirken, muss der URL-Rewriter als Output-Handler aktiv sein. Dies erfordert, dass output_buffering in der php.ini aktiviert oder manuell mit ob_start('ob_tidyhandler') bzw. dem entsprechenden Rewriter-Handler gestartet wurde. Ohne aktiven Output-Handler schlägt die Funktion fehl und gibt false zurück.
Sicherheitshinweis: Das transparente Weiterleiten von Session-IDs über URLs (URL-Rewriting) ist sicherheitskritisch, da Session-IDs in Server-Logs, Browser-Historien und Referrer-Headern sichtbar werden können. Bevorzugen Sie wo immer möglich Cookie-basierte Sessions (session.use_only_cookies = 1).
Abgrenzung: Diese Funktion beeinflusst nicht das durch session.use_trans_sid gesteuerte Session-ID-Rewriting. Zum Deaktivieren von Trans-SID muss die entsprechende PHP-Konfiguration geändert werden.