Individuelle URL-Pfade
Mithilfe der Rewrite-Klasse (QUI::getRewrite()
) ist es möglich, frei konfigurierbare URLs festzulegen, die automatisch auf bestimmte Seiten weitergeleitet werden.
Idealerweise geschieht dies in den Events onSiteSaveBefore
oder onSiteSave
, sodass eine Änderung der URL einer Seite für individuelle Pfade ggf. berücksichtigt werden kann.
Beispiel:
<?php
use QUI;
use QUI\Utils\StringHelper;
// Pfad nur für aktive Seiten registrieren!
if ($Site->getAttribute('active')) {
// URL der Seite bekommen
$url = $Site->getLocation();
// Ein mögliches ".html" am Ende der Seiten-URL entfernen
$url = StringHelper::strReplaceFromEnd(QUI\Rewrite::URL_DEFAULT_SUFFIX, '', $url);
// Den Pfad "/*" registrieren und auf die Seite weiterleiten
QUI::getRewrite()->registerPath($url . '/*', $Site);
}
Syntax
Die Syntax, mit der Pfade festgelegt werden, richtet sich nach der PHP-Funktion fnmatch
(http://php.net/manual/de/function.fnmatch.php).
Beispiele:
parent/parent/*
parent/parent/*gr[ae]y
Der registrierte URL-Pfad muss nicht zwangsweise mit dem Namen der Seite, auf die hingeleitet werden soll, zutun haben. Der Pfad pferde/sind/toll
kann auch auf die Seite /HundeSindBesser
leiten.