cakephp 於使用者目錄 的RewriteBase 判斷

edited 十月 2013 in CakePHP
之前有網路上的前輩解決了cake在apache裡用了使用者目錄問題
/~user/

在.htaccess中
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /~xma/
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
</IfModule>

可是因為我的環境有時是有使用者目錄 有時沒有
或是申請好DNS 自然就直接用網址連結

所以常常是開發到一半測試就開始把RewriteBase 註解掉


之前有查詢了apache手上裡 好像沒有看到RewriteBase有能作一些正規化的處理

再請教各位大大 有什麼方法可以解決嗎

原始討論: http://twpug.net/x/modules/newbb/viewtopic.php?topic_id=5848

評論

  • edited 四月 2011
    建議就直接用網址連結,如果是在內部就用 hosts 設定對應 IP 來避免這個問題吧
  • edited 四月 2011
    謝謝K大
    雖然正常的流程是用網址來處理這個問題

    可是客戶是一般公司行號
    所以常常有他們也不確定網址到底要申請什麼名字
    可能還在跟上級討論,但他們老闆又要看到畫面來確定進度

    所以這個時候『使用者目錄』+ IP 又要拿出來當臨時網址了T____T
    而且這種情況發生比例超高的....


    內部就用 hosts 設定對應 IP
    > 可以再請k大再詳細一點點說明嗎...我好像不太了解你的意思
    謝謝QQ
  • edited 四月 2011
    參考這個:
    http://en.wikipedia.org/wiki/Hosts_(file)

    如果可以控制 DNS Server 會更方便 :)
  • edited 四月 2011
    謝謝k大 又學習了一個在本機測試的方法
    不過之前已經用不同的port分 不同的專案
    有點類似k大的方法 一個是用不同的網址 一個是用不同的port號

    ><可是真正出現『使用者目錄問題』的是在向別人租的虛擬主機(hostgator)阿


    也試過去申請一些免費的DNS來用用…不過時間一到就被不留情面的砍掉了
    這時給客戶的dns又失效了,再給他一組新dns的也不太好交待><
  • edited 四月 2011
    我想你有點誤會了, hosts 檔案的設定是在使用者端,也就是自己電腦。虛擬主機可以透過 addon domain 掛上任意網域名稱(即使沒有註冊,除非出現衝突),接著在自己 hosts 檔案去設定網址與 IP 對應關係,在自己電腦就可以正常使用該網域名稱進行存取

    你所申請的是 dn , dns 是 server ,用來管理網域名稱跟 IP 對應關係,如果可以自己管理,那麼上面這個動作就可以手動處理
  • edited 五月 2011
    謝謝K大的回覆

    可是除了自已要測試查看,客戶那邊也需要看一下工作進度,但不太可能請客戶改自已的 hosts 檔案
    所以好像還是不行的感覺>"<
  • edited 五月 2011
    不太懂你的架構,也許你可以用範例網址說明,你開發中以及請客戶進來看分別使用什麼樣的網址以及你現在的操作方式,總覺得應該是不難解決的問題...
  • edited 八月 2011
    K大你好,很抱歉這麼晚才回復
    實在是因為專案時間太卡了,天天被追殺,所以先用原本的方法得過且過了
    我的架構是:

    本機電腦開發cakephp程式,架apache 用port來分不同專案
    http://127.0.0.1:7000
    > 專案A
    http://127.0.0.1:7001
    > 專案B
    http://127.0.0.1:7002
    > 專案C

    但是丟到虛擬主機去(hostgator),他們就只能建一個一個不同的帳號,所以變
    http://61.34.22.11/~danny
    > 專案A
    http://61.34.22.11/~amy
    > 專案B
    http://61.34.22.11/~ivy
    > 專案C

    可是如果有客戶預先申請網址,如 61.34.22.11/~ivy 申請為www.ivy.com.tw
    這種情況我的htaccess就不用改 也可以運作
    可是十個客戶有九個不會這麼快決定,所以他們都看61.34.22.11/~ivy

    所以我就是自已寫好的cakephp程式丟上虛擬主機,我又手動跑去.改htaccess裡面的RewriteBase
    因為最近想要用同步備份,總不能遠端專案拉回來 不能用 還要改來改去的Q___Q

    再請各位大大給點意見和幫忙了 謝謝><
  • edited 八月 2011
    我一般會使用一個子網域處理,像是 demo.olc.tw ,在延伸開下去 danny.demo.olc.tw, amy.demo.olc.tw 等,這樣子就可以避開使用者目錄問題

    既然你可以開立帳號,應該也可以調整 apache 設定吧?進一步定義 http://61.34.22.11/danny => /home/danny/public_html 這樣應該也不難

    如果可以用指令模式登入,我一般比較喜歡透過 svn 管理,在開發過程的程式更新會方便許多
  • edited 九月 2011
    因為我是租用hostgator 經銷型 他在帳號的建立就是
    A客戶 建一個帳號danny 他就得到 http://61.34.22.11/~danny
    B客戶 建一個帳號amy 他就得到 http://61.34.22.11/~amy

    一開始我就只有user_dir 這種方式能操作了 "http://61.34.22.11/danny"; 這個url是怎麼也讀不到

    所以第一個問題是,我好像沒有網址可以運用,所以也不能開子網域

    如果有網址可以運用的時候,用子網域在測試期間是ok,可是要正式上線的時候,仍要做資料夾的搬家嗎


    再請教一下k大
    svn 是可以遠瑞和自已本機同步的嗎? 如果可以的話,可以建議我查哪些關鍵字 好去了解一下,謝謝
    (我們最近發生了,美工不小心把程式蓋掉,或程式不小心把美工的字蓋的事件了XD)
  • edited 九月 2011
    如果是用子網域,正式上線應該不需要調整些什麼,除非你的部份程式涉及到網址的處理

    svn 等版本控制系統主要只是在程式不小心被蓋掉時輕易的得知異動的細節,大部份還是要靠使用者手動操作(當然,也許有更方便的工具,只是我習慣用指令操作了...)
Sign In or Register to comment.