2009-08-24 13 views
0

Wir entwickeln eine Website mit CakePHP. Wir haben einen Windows-IIS-Server (shared hosting) mit PHP5, der .htaccess oder mod_rewrite nicht unterstützt, aber wir haben die Seite immer noch in Betrieb und haben viele Dinge entwickelt.CakePHP URL-Verhalten ändern

Die aktuelle URL-Struktur so etwas wie dieses: mydomain/index.php/user/hinzufügen

Das wollen wir wie etwas ändern:? mydomain/index.php Controller = user & action = hinzufügen

wir wollen, dies zu tun, wie wir einige unerwartete Probleme Sitzung abgelaufen konfrontiert sind und wir bezweifeln, dass es für den Benutzer zurückzuführen ist von einer uRL zum anderen wie diese Reisen: mydomain/index.php/user/hinzufügen zu mydomain/index.php/list/edit dies ändert die doma in für IIS oder PHP, die die Sitzung ablaufen lassen, aber Kuchen interpretiert die Seiten perfekt.

Wenn es eine Möglichkeit gibt, die Behiviour von Cake zu ändern, um die URLs mit Frage und Amphersand zu nehmen, wird es großartig.

Vielen Dank im Voraus.

+0

Sie sollten 'index.php' in Ihren URLs nicht benötigen. Cake ist so ausgelegt, dass es Controller-Aktionen als Domäne/Controller/Aktion/Parameter ausführt. –

+0

Ja, aber in unserem Fall mit IIS, braucht es index.php ohne index.php es wird es nicht öffnen, es versucht, diesen Ordner und die Datei index.php darin zu finden, die 404 nicht gefunden findet. – happyhardik

+0

Sie können ISAPI_Rewrite 2 (kostenlos), ISAPI_Rewrite 3 (kostenpflichtig) oder Microsoft IIS Rewrite Module (IIS7) ausprobieren. – deizel

Antwort

0

Sitzung Ablaufen wird nicht durch die URL-Struktur verursacht. haben Sie überprüfen?

  1. Konfigurieren :: write ('Session.timeout', '3600'); in der core.php. mach es länger
  2. Konfigurieren :: write ('Security.level', 'high'); in der core.php. make it medium oder low
  3. Konfigurieren :: write ('Session.checkAgent', false); in core.php mache es falsch. kann ein Problem mit Ajax Calls verursachen
+0

Hallo, ich bin mir nicht sicher, ob es sicher ist, die Sicherheitsstufe von hoch auf niedrig zu reduzieren oder den checkAgent falsch zu setzen. Kannst du mich irgendwo hinführen, wo ich herausfinden kann, was diese Sicherheitsstufen bewirken und was wird das bewirken? – happyhardik

+0

klingt wie Sie Zeilen 130 bis 147 in core.php lesen müssen (http://code.cakephp.org/source/app/config/core.php#123) – deizel

+0

Dies funktionierte!Wir haben noch einige Probleme, aber das Grundproblem ist gelöst. – happyhardik

1

Vielleicht möchten Sie etwas versuchen:

1) Ihre IIS Dokument root app/webroot 2) Rufen Sie Ihre Anwendung verweisen, indem Sie auf http://site.com/index.php?url=/user/add

Wie es in den Controller = user Ändern & action = add, das einzige, was ich vorschlagen kann, ist Code zu Ihrer Datei index.php hinzuzufügen, um das Format "controller = user & action = add" in das Format url =/user/add zu übersetzen. Vielleicht möchten Sie auch den Router überprüfen, um zu sehen, ob es Funktionen gibt, mit denen Sie diese Dinge ändern können.

Wenn Sie weitere Hilfe benötigen, würde ich die Frage in irc.freenode.net #cakephp posten

+0

Vielen Dank für Ihre Antwort Dooltaz! Es war nützlich. – happyhardik