mod_rewrite zu REST-freundlicher URI mit relativen Pfaden und ohne Schleifen

343
Ryan

Meine Ordnerstruktur ist der folgenden sehr ähnlich:

/a/b/api/ .htaccess index.php support.php debug/ debug.php 

Ich versuche, mod_rewrite für folgende Zwecke zu verwenden: a / b / api / d -> a / b / api / index.php / da / b / api / d / e -> a / b / c / index. Deutsch:. Englisch: emagazine.credit-suisse.com/app/art...3518 & lang = en a / b / api / debug / debug.php -> a / b / c / index.php /debug/debug.php

Um Schleifen zu vermeiden, schlagen die meisten Leute das Hinzufügen vor

RewriteCond % !-f 

was den Zugriff auf support.php nicht blockiert. Wenn ich es entferne, bekomme ich leider einen Fehler in der maximalen Rekursionstiefe von index.php. Eine andere Lösung, die Leute vorschlagen, ist, RewriteBase zu verwenden, um eine Basis auf / a / b / c festzulegen. Leider muss dieses Skript die Aufnahme in ein beliebiges Verzeichnis unterstützen, sodass es möglicherweise in / z / c oder b / a / c endet.

Gibt es eine Möglichkeit, alles mit Ausnahme von Verweisen auf sich selbst auf index.php umzuleiten (ohne Kenntnis des Ordners darin)

Vollständiger Code:

RewriteEngine on  RewriteCond % !-f RewriteRule ^(.*)$ index.php/$0 
0

0 Antworten auf die Frage