Yii Website auf MS Server (IIS)

Hallo zusammen,

und zwar habe ich grad eine Website erstellt. Dabei wusste ich nicht, dass diese auf Windows laufen soll.

Das Problem dabei ist, dass mod_rewrite dort ja nicht läuft, ich aber verschiedene Routen definiert habe. Somit kann ich auch nicht einfach also urlFormat in GET ändern kann.

Hat jemand eine Idee, wie ich das lösen kann, außer keine Rules mehr einzusetzen, damit GET funktioniert? Aktuell habe ich als Notlösung eine Weiterleitung auf meinen Server geschaltet, was aber nicht wirklich toll ist.

Danke schon mal im Voraus

LG Ufisch

Hi und willkommen! :)

  1. Wieso meinst du, dass mod_rewrite auf Windows nicht funktioniert? Selbst wenn du IIS statt Apache verwendest, sollte der was ähnliches anbieten. Da sind aber die IIS-Experten gefragt.

  2. urlFormat is erst mal unabhängig von mod_rewrite. Du kannst urlFormat=‘path’ auch ohne mod_rewrite verwenden. Erst wenn du ‘index.php’ aus der URL raus haben willst, brauchst du mod_rewrite. Dafür ist aber die Einstellung ‘showScriptName’=>false zuständig.

Hi Mike,

dankeschön, bin schon länger dabei. Heute hab ich allerdings das erste Mal was gepostet :)

Klar, für ISS gibt es auch sowas, aber nach ersten Informationen muss man da erst was installieren. Da ich aber nicht direkt mit dem Kunden Kontakt habe (ging über nen Kollegen, für den ich nur die technische Umsetzung gemacht habe), kann und möchte ich da sicher nichts installieren. Von daher fällt das flach.

Zu zweitens: klingt irgendwie logisch. showScriptName ist aber auf true und es funktioniert dennoch nicht. Ich habe das Gefühl, dass der ISS das nicht blickt und die index.php aufruft. Ich glaube ich setze mir mal einen auf und schaue, was der wirklich macht.

Bei Apache musst du ja auch erst was "nachinstallieren" und zwar das Modul mod_rewrite

Stimmt, wobei das meistens vorhanden ist (ich hatte jedenfalls noch nicht das "Problem", dass es nicht drauf war).

http://www.aspheute.com/artikel/20021106.htm

Danke, auf diese Seite bin ich letztens auch schon gestoßen.

Die Sache ist aber die, wie schon erwähnt, dass ich auf dem Server nichts installieren will. Das Problem ist, dass ich ja keinen direkten Kontakt mit dem Kunden habe. Ich könnte allerdings mal schauen, ob der Admin das vielleicht installieren kann (wobei auch das wieder über zwei Ecken geht).

Ich möchte aber erstmal schauen, dass ich es auch ohne hinbekomme.

Aber ist es irgendwie möglich die Links auch per GET zusammenzubauen, sodass ich nicht die Route angebe sondern den Pfad, damit die Regeln ausgewertet werden?

@Ufisch:

Was meinst du genau mit “per GET zusammenbauen”? Nochmal zur Klarstellung: Im UrlManager gibts für urlFormat zwei Einstellungen. Mit der Standardeinstellung ‘get’ werden Links so generiert:


.../index.php?var1=wert1&var2=wert2



stellt man das auf ‘path’, erzeugt (und interpretiert!) Yii solche Links:


.../index.php/var1/wert1/var2/wert2



Beispiel mit path: www.domain.de/unternehmen/profil

Wenn ich jetzt auf get umstelle, dann würde die URL so lauten: ‘www.domain.de/index.php?r=unternehmen/profil

Mit diesem Aufruf will er ja den UnternehmenController aufrufen, den es gar nicht gibt. Gemeint hatte ich, dass er einfach den GET-Teil, also in dem Fall das r gegen die Regeln prüft.

Allerdings was du am Anfang gesagt hattest, dass es eben mit ‘www.domain.de/index.php/unternehmen/profil’ auch ohne mod_rewrite gehen sollte, macht mich stutzig. Das sollte ja tatsächlich gehen, tut es aber nicht. Ich habe das Gefühl, dass er die index.php wegen dem nachfolgenden ‘/’ als Ordner ansieht.

Habe aber bisher dazu aber noch nichts gefunden. Wie auch - ich hab keine Ahnung nach was ich googlen muss :)