2008-08-17 9 views
1

Ich habe es in vielen Blogs im Netz erwähnt, aber ich glaube, es sollte hier diskutiert werden. Was können wir tun, wenn wir ein MVC-Framework (ich interessiere mich für ZEND) in PHP haben, aber unser Host nicht mod_rewrite bietet? Gibt es irgendwelche "Abkürzungen"? Können wir die Kontrolle in irgendeiner Weise übertragen (so dass eine Zuordnung zwischen Seiten möglich ist)? Irgendwelche Ideen? Danke :-)php Zend/MVC ohne mod_rewrite

Antwort

4

Zend Rahmen sollte ohne mod_rewrite funktionieren. Wenn Sie mit Ihrer URL leben können: s sieht eher aus wie "/path/to/app/index.php/controller/action". Wenn du mod_rewrite hättest, könntest du das "index.php" -Bit weglassen, aber es sollte auch funktionieren.

Es ist alles eine Frage der Einrichtung der Routen, um den Index.php Teil zu akzeptieren.

0

mod_rewrite ist fast essentiell in der heutigen Hosting-Umgebung..aber leider hat nicht jeder die Nachricht bekommen.

Viele der großen php-Programme (ich denke Magento, aber die meisten können damit umgehen) haben eine hübsche URL Fallback-Modus für, wenn mod_rewrite nicht verfügbar ist. Ende

URLs wie www.site.com/index.php?load-this-page suchen

Sie müssen etwas Magie laufen die Variablennamen aus dem $ _GET Variable und verwenden sie als Wähler greifen für welches Modul/Feature ausgeführt werden soll.

In einem verwandten Hinweis habe ich viele verpatzte URLs in der neuen Facebook-Website gesehen, wo es die # verwendet. Links wie www.new.facebook.com/home.php#/inbox/ Natürlich sind wir nicht dazu gedacht, das zu sehen, aber es deutet darauf hin, dass sie wahrscheinlich die Variable $ _SERVER ['REQUEST_URI'] analysieren.

0

Wenn Sie eine nicht-mod_rewrite Möglichkeit finden, alle Anfragen an index.php umzuleiten (oder wo auch immer Ihr init Skript ist), können Sie, wie oben erwähnt, mit 'REQUEST_URI' den Teil der Adresse nach dem Domain und dann analysieren Sie es, wie Sie möchten und machen Sie die Anfrage tun, was Sie wollen. So macht es Wordpress (gewährt mit mod_rewrite). Solange Sie Anforderungen an Ihre Indexseite umleiten können, während Sie denselben URI beibehalten, können Sie die zur Verarbeitung der Anforderung erforderlichen Schritte ausführen.

1

OK mein Urteil :-): Ich habe erfolgreich zend ohne mod_rewrite verwendet und es ist wie Sie alle gesagt haben site/index.php/controller/action. Das wusste ich, bevor ich das veröffentlichte. Ich habe auch im Netz eine Technik entdeckt, die 404 Seiten zu index.php "schubst", was also keine Ressource (zB CSS, Bild, etc) ist, mit einer Ausnahme: POST Werte. Also entschied ich, dass das nächste Mal, wenn eine Anwendung auf dem spezifischen Server erstellt werden muss, höflich nach mod_rewrite gefragt wird. Wenn der Administrator es nicht bereitstellen kann, sprechen Sie mit meinem Chef oder, wenn es für mich ist, wechseln Sie den Anbieter. Im Allgemeinen ist es eine Schande, einige Male, dass PHP-Markt so sehr fragmentiert ist (PHP4, PHP5, php6, mod_rewrite, mod_auth, mod_whatever), aber das ist eine andere Geschichte ...