我正在重新設計自己的php mvc框架。如何防止顯示PHP MVC/LAMP中的資源http請求
我有默認情況下由/index.php處理每個請求,這會觸發mvc路由進程,執行請求並返回正確的視圖。每個請求是根據一個「Q」 GET參數,Drupal的風格路由,像
/index.php?q=anApplication/aController/theAction/arg1/.../moreArguments
這工作不錯,並使得清潔網址的事情用mod_rewrite容易。好。
我有一個目錄樹是這樣的:
/public
|----themeName
|--------|
|----page.tpl
|----content.tpl
|----etc.
/private
|----sourceDirectory
|----moreSources
我不想是存儲在私人和公共目錄中的文件直接送達像一個HTTP請求:我不希望像
mySrv /公/ THEMENAME/page.tpl
顯示一個死的模板,或任何資源這不是一個圖像,繞過我的核心處理程序 - index.php。
我想我可以實現與重寫的配置是這樣的
RewriteEngine on
RewriteBase/
RewriteRule ^(.*)$ index.php?q=$1 [QSA,L]
但隨後該框架將只啓用了mod_rewrite的網站工作,因爲這將改寫所有現有的和非現有資源。
我要求的是:還有另一種方法可以讓我選擇的資源(如index.php)提供每個請求,現有的或不存在的請求?
謝謝
爲什麼你在公用文件夾中有模板? – Stan
因爲我通常共享模板文件夾與通用資源,如CSS,JS等 – brazorf
這不是一個好主意,恕我直言。無論如何, – Stan