星期三, 12月 08, 2010

移除Zend網址中不專業的public路徑

由於zend建立的專案,會預設在www.test.com/public下
雖然因檔案歸類問題,需放在這個public資料夾
不過一直覺得很礙眼,但也沒想到辦法去改掉

這2天那該死的美工johnny又跑來說:「ㄟ~ 那個網址有public有點討厭ㄝ」
可惡~ 觸碰到我的痛處
今天盛怒之下 總算解決~~ 真開心

原本先查到Rob Allen的做法
要改路徑,還要在所有$this->baseUrl() 加上public/
改了一堆也還沒成功,就先看有沒有其他做法
很幸運地,看到比較簡單的方法 ~~ ya
只要做以下三件事就完成了
  1. Create /etc/httpd/conf.d/zfapp.conf
    Alias /zfapp /usr/share/zfapp/public
    <directory /usr/share/zfapp/public>
      AllowOverride All
      Order Deny,Allow
      Allow from all
    </directory>
  2. In /usr/share/zfapp create the structure
    -application
      bootstrap.php
      controllers
      views
      models
    -library
      Zend
    -public
      .htaccess //在public裡,新增.htacess
      index.php
  3. htaccess contains:
    RewriteEngine On
    RewriteBase /zfapp/
    RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
注意事項
透過url讀取資料的方法,都會自動轉成正確的位置
也就是假設要讀取xx.jpg,位於真實路徑/zfapp/public/下
url為/zfapp/xx.jpg,即為自動轉成/zfapp/public/xx.jpg
但如果是php裡,要file相關函數讀檔的(ex.file_exists())的話
就得要加上public改成/zfapp/public/xx.jpg

Reference

2 則留言:

johnny 提到...

不要說我的壞話

fishjerky 提到...

我們是不同領域的
你不要跑來亂啦