人生如夢 apache mod_rewrite …

讓不同使用者共用一個 codeIgniter 專案時,可以共用的.htaccess rewrite,
這問題已經卡了快超過一年…
終於試著解決了…
RewriteEngine on
RewriteCond $1 !^(index.php|images|robots.txt|assets|temp)
RewriteCond %{REQUEST_FILENAME} ^/home/(.+)/www/(.+)/(.*)
RewriteRule ^(.*)$ /~%1/%2/index.php/$1
成效:
網址 http://site.com/~user/project/index.php/controller/method/
首頁 /home/user/www/project/index.php
運作成功後可以在 $user 與 $project 變動的情況下,省略index.php  ,
透過 RewriteCond 分析 REQUEST_FILENAME 參數將路徑切割成 %1 = user %2 = project
再映對至index.php前的路徑。
debug心得:
由於實際在測時很難知道 rewrite 變數的實際值,所以可以建立一個 php 檔案印出 $_SERVER 並將變數內容導至該php ,
例如:
RewriteCond %{REQUEST_FILENAME} ^(.*)$
RewriteRule ^(.*)$ index.php?%1
這樣就能看到該變數的值了…再慢慢分析……阿阿阿
參考資源:
http://corz.org/serv/tricks/htaccess2.php 這裡面很多例子很豐富~

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *