mod_rewrite auf IIS 7 - Regeln umschreiben
Baba
- webserver
Entäuscht habe ich gelernt, dass es kein mod_rewrite auf meinem neuen Windows Server gibt (iis 7). Jetzt gibt es zwei Möglichkeiten, wie ich das verstanden habe: 1) irgendeine Software kaufen, die mir ein ähnliches Verhalten wie mod_rewrite ermöglicht, oder 2) die engine von URL_rewrite 2.0 zu verwenden.
Ich tendiere zu letzterem, weil ich nicht viele Regeln habe.
Wie könnte ich folgendes realisieren
mod_rewrite code:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php/$1 [QSA] #$_SERVER['PATH_INFO']
Ich finde im URL-rewrite 2.0 keine Regeln für "Script vorhanden" oder "Ordner vorhanden", sondern nur Muster und Platzhalter für das Aussehen der URL.
Vielen Dank.
Cheers,
Baba
- irgendeine Software kaufen, die mir ein ähnliches Verhalten wie mod_rewrite ermöglicht
Dann empfehle ich den Kauf (bzw. das vorherige Ausprobieren) von ISAPI_Rewrite.
Dann empfehle ich den Kauf (bzw. das vorherige Ausprobieren) von ISAPI_Rewrite.
Danke für den Link, das hatte ich schon gefunden.
Ich würde lieber zu der zweiten Variante etwas wissen, da ich nicht großartig investieren kann und für Win Server 2008 keine freeware Version vorhanden ist. Geht es irgendwie mit url rewrite?
Cheers,
Baba
Kleine Anfrage für ein Workaround:
Wenn ich nun das Verhalten, dass bei nicht-finden des Skriptes zur index.php verwiesen wird, über das Fehlerseitenmanagement realisierte, würde mich interessieren, wie ich url-Parameter an diese Fehlerseite übergeben kann.
Ich habe damit mal gespielt. Im IIS unter IIS -> Fehlerseiten kann ich bei 404 die index.php eintragen. Dann komme ich, egal was ich als Adresse eingebe zur index.php.
Beispie:
www.example.org/user/login
führt zur
www.example.org/index.php
Ist es dann ausreichend und sicher die Variablen aus der $_SERVER["REQUEST_URI"] zu nehmen?
Cheers,
Baba
Cheers,
Baba
Für den Fall, dass dies einmal ein Googleergebnis für jemanden wird, der ein ähnliches Problem hat...
Die oben beschriebene MEthode hat den Nachteil, dass ich zum Beispiel auch nicht an POST Variablen komme, da ein Neuaufruf geschieht. Für meinen Fall, dass bei Nicht-Angabe des aufgerufenen Scriptes die index.php aufgerufen wird - in mod_rewrite mit
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.*) /index.php/$1 [QSA] #$_SERVER['PATH_INFO']
realisiert - habe ich nun diese Regel in url-rewrite von IIS eingeführt:
Typ: "Entspricht nicht dem Muster"
Verwendung: Platzhalter
Muster: "*.*"
Aktionstyp: "umschreiben"
auf URL: index.php/{R:2}
Ich schreibe alle Anfragen, die keinen Punkt enthalten (keine Angabe von einem Script) um auf index.php.
Für den Fall, das ein Skript angegeben wird, dies aber nicht vorhanden ist, läuft weiterhin der Fallback über die Fehlerseiten.
Cheers,
Baba