2010-04-23 76 views
2

我在寫迷你MVC應用程序。應用架構:Apache重寫排除資產目錄

動作/ 模板/ 網站/ 應用程序/ 風格/ 圖像/ 腳本/

到目前爲止,我有一個控制器正常工作,同時在所有請求。但是,JavaScript文件在瀏覽器中未正確呈現;當我嘗試在瀏覽器中加載文件時,我收到404 Not Found。

這是一個虛擬主機文件我的當前目錄的配置:

<Directory "/path/to/apps/ecatalogue"> 
DirectoryIndex index.php 
RewriteEngine On 
RewriteBase /apps/ecatalogue 
RewriteRule ^scripts/(.*) - [NC,L] <--- Rule not working 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ index.php [NC,L,QSA] 
</Directory> 

我可以證實一切工作;我只需要apache忽略腳本中的任何內容,以便文件可以正常加載而不被控制器處理。

您的幫助表示讚賞。

更新I:爲了完成而添加目錄標記。

回答

4

我在這裏切換了一些東西 - 這是基於我用於幾乎每個運行的MVC應用程序的重寫規則。它來自Zend Framework文檔的一些建議。

DirectoryIndex index.php 

RewriteEngine On 
RewriteBase /apps/ecatalogue 

# If it's a file/directory/symlink, serve it. 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
RewriteCond %{REQUEST_FILENAME} -l 
RewriteRule ^.*$ - [NC,L] 

# Otherwise let's go MVC 
RewriteRule ^.*$ index.php [NC,L] 
+0

嗨awgy,非常感謝您的回覆。把它放到一個新的虛擬主機中。當我嘗試訪問JS文件時,它現在不再給我404錯誤,而是給了我設置的通用MVC錯誤頁面。 – Midiane 2010-04-23 13:24:04

+0

非常感謝,讓它在最後工作 – Midiane 2010-04-27 00:53:00