我正在研究一個Zend Framework項目,在那裏我偶然發現了一些問題。 這個問題來自模塊是Zend框架中第二類公民的事實。在我的項目中,我希望每個模塊都有一個文件夾,其中包含要從外部訪問的文件 - 樣式表,JavaScript和圖像等文件。Apache - 「動態」重寫規則
現在,這是如何完成的。隨着Zend框架的項目,我有一個文件夾結構,看起來像這樣:
- 應用/
- 模塊/
- ModuleOne的/
- 公共/
- 樣式表.css
- 公共/
- ModuleTWO中/
- 模塊ModuleTHREE/
- ModuleOne的/
- 模塊/
- 公共/
- 的index.php
標準的.h地處公共/文件夾taccess文件保存了這一點:
SetEnv APPLICATION_ENV development
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
它的工作方式是,該項目的apache的DocumentRoot的是公共/文件夾。所有請求都通過index.php文件重定向到了Zend Framework路由器組件接管的位置。現在,我絕不是Apache的專家,也不是mod_rewrite,所以如果這只是愚蠢的話,請原諒我。我想我在現有的重寫規則中實現了一個額外的步驟,以便如果我請求http://project/public/moduleOne/stylesheet.css它將例如解析爲/var/www/project/application/modules/moduleOne/public/stylesheet.css。
因此,這需要做的步驟是檢查URI中的第一個元素是公共/如果是這樣,我們採取下段模塊的名稱,並使用該路徑,我們正在努力解決並嘗試提供該文件。
這是所有可能的還是沒有人有更好的建議?
謝謝您的時間 基督教拉斯穆森
嗨,奧洛,遺憾忘記這個問題。 關於訪問文檔根目錄之外的資源,你的確是對的。我真誠地感謝你的回答。 – 2011-03-07 09:35:35