2013-11-28 39 views
0

我試圖讓索引頁面遵守.htaccess中定義的重寫規則(或者用我的路由文件中定義的默認路由來重寫index.php中的路徑: rewrite.php)。PHP,MVC:重寫索引規則頁面

爲什麼,你可能會問?我在PHP中創建了一種MVC項目(我說'有點',因爲我不使用像Zend這樣的框架,我只是將MVC想法實現爲純php)。所以,而不是頁面我有意見。我的項目中沒有index.php文件(也沒有index.html ...實際上沒有任何索引文件)。我在.htaccess文件的幫助下重寫了所有的url路徑,然後我使用控制器進一步操縱模型或在視圖中顯示。 爲什麼不使用index.php頁面,你可能會問?就像我說的,我使用控制器來做東西。通過使用索引頁,我無法通過控制器操作模型和視圖,因爲物理頁面具有優先級,並且URL重寫規則會被忽略。所以,如果有人轉到根頁面(http://www.domain.com/),服務器將自動顯示索引頁面,並且我不想複製第一頁的邏輯(獲取和顯示數據),僅用於使用索引頁。

也許這是愚蠢的,但我試圖改變默認目錄頁面(DirectoryIndex在.htaccess中)爲空(沒有工作,如我所料)。 :)

這就是說,我已經排除了索引頁面。它運行良好,它顯示了它應該做的數據,但仔細看,我發現瀏覽器實際上在根頁面上收到「403 Forbidden」。

在ASP.NET MVC中,Default.aspx的存在也是強制性的(出於同樣的原因,我認爲)。但是在默認頁面中,http上下文路徑使用Global.asax中定義的默認路由來重寫。問題是我該如何在PHP中做到這一點? (或任何其他建議是歡迎的)

你可以看到我在這裏討論的網頁:www.clubclio.eu(你可以看到,數據很好的顯示,但你收到403禁止)。

回答

1

我解決了這個通過重命名文件rewrite.php(在.htaccess中定義的路由文件)到index.php

因此,要回答自己的問題,而是幫助別人也一樣,請確保您有路線文件定義爲索引文件(將其命名爲index.php或將.htacctess中的DirectoryIndex定義爲路由文件的名稱)。

也許這對其他人來說是顯而易見的。 :)