5.6. Basis URL und Unterverzeichnisse

Im Gegensatz zum ursprünglichen Route kann RewriteRouter auch in Unterverzeichnissen verwendet werden - deine Basis URL wird automatisch erkannt und entsprechend gesetzt. Zum Beispiel: wenn sich deine index.php in einem Unterverzeichnis mit Namen /projects/myapp/index.php befindet, wird die Rewrite Basis (die Basis URL) auf /projects/myapp gesetzt. Dieser String wird dann vom Anfang des Pfads entfernt, bevor die Treffer für die Routen ermittelt werden. Dies befreit dich von der Notwendigkeit, ihn jeder deiner Routen voranzustellen. Die Route 'user/:username' passt auf URLs wie http://localhost/projects/myapp/user/martel und http://example.com/user/martel.

[Anmerkung] Anmerkung
Die automatisches Rewrite Basis beachtet die Groß- und Kleinschreibung, stell also sicher, dass deine URL auch auf den Namen eines Unterverzeichnis im Dateisystem passt (gilt sogar auf Windows Rechnern). Wenn es nicht passt, erhälst du eine noRoute Aktion.

Sollte die Rewrite Basis falsch erkannt werden, kannst du sie mit Hilfe der setRewriteBase Methode der RewriteRouter Klasse mit deinem eigenen Basispfad überschreiben.

$router->setRewriteBase('/projects/myapp');
[Anmerkung] Anmerkung
In den meisten Fällen wird dieser Schritt nicht notwendig sein und es wird davon abgeraten, da es eine weitere Konfigurationsvariable einführt, die geändert werden muss, wenn man den Code in eine andere Verzeichniskonfiguration verschiebt.