2008-08-17 36 views
1

我已經看到它在網絡上的許多博客中提到過,但我相信它應該在這裏討論。 當我們在PHP中有一個MVC框架(我對ZEND感興趣)時可以做些什麼,但是我們的主機不提供mod_rewrite? 有沒有「捷徑」?我們能否以任何方式傳輸控件(以便頁面之間可能會發生映射)?有任何想法嗎? 謝謝:-)php Zend/MVC沒有mod_rewrite

回答

4

Zend框架應該沒有mod_rewrite。如果您可以使用您的URL:s看起來更像「/path/to/app/index.php/controller/action」。如果你有mod_rewrite,你可以不使用「index.php」位,但它也可以工作。

它是建立路由接受的index.php部分的所有問題。

0

的mod_rewrite幾乎是必備的在今天的託管environment..but可惜不是每個人得到的消息。

許多大型PHP程序(我想Magento的,但最能應付)的有一個漂亮的URL回落的時候mod_rewrite的不可用狀態。

網址,最後看起來像個www.site.com/index.php?load-this-page

它們必須運行一些魔術搶從$ _GET變量的變量名稱,並用它作爲選擇要執行什麼模塊/功能。

在一個相關的說明,在那裏它使用了#我見過很多在新的Facebook網站亂七八糟的URL。所以鏈接看起來像www.new.facebook.com/home.php#/inbox/顯然,我們並不打算看到,但它表明他們可能正在解析$ _SERVER ['REQUEST_URI']變量。

0

如果你可以找到一個非mod_rewrite的方式將所有請求重定向到index.php(或者你的初始化腳本所在的位置),那麼你可以使用'REQUEST_URI'來獲取地址部分域,然後根據你的喜好解析它,並使請求做你想做的事。這是Wordpress如何做到的(通過mod_rewrite授予)。只要您可以將請求重定向到索引頁面,同時保留相同的URI,則可以執行處理請求所需的操作。

1

確定我的判決:-):我已經成功地使用Zend公司沒有mod_rewrite的,它是如你所說的所有網站/ index.php文件/控制器/動作。在發佈之前,我知道這一點。我還在網絡上發現了一種將404頁面推送到index.php的技術,因此,什麼不是資源(例如CSS,圖像等)到達那裏,有一個例外:POST值。 所以我決定下次在特定的服務器上創建一個應用程序時,要禮貌地詢問mod_rewrite。如果管理員無法提供,請與我的老闆交談,或者如果是我的話,請切換供應商。 一般來說它是一種恥辱一些倍PHP市場這麼多碎片(PHP4,PHP5,PHP6,mod_rewrite的,的mod_auth,mod_whatever),但這是另一個故事...