mod_rewrite 模擬 mod_userdir - Linux

Table of Contents

因為一些特殊需求,我的使用者網頁會放在 /home/user/home/user/www 下
兩次 /home/user 不是 typo,是真的兩層 /home/user XD
因為這種特殊目錄結構導致 apache 的 mod_userdir 沒法直接去讀使用者的網頁
(我用過 wildcard * 去設定,但 * 只能用一次,第二個 * 會抓不到)

於是關掉 mod_userdir 想用 mod_rewrite 去實現 mod_userdir 的功能

RewriteEngine On
RewriteRule ^~([a-z0-9]+)(.*) /home/$1/home/$1/www$2

可是實際運作時發現,apache 把 /home/$1/home/$1/www$2 加到
DocumentRoot 後面變成去讀 http://FQDN/home/user/home/user/www/
但我原意是想他去讀實體目錄 /home/user/home/user/www

請問 mod_rewrite 有辦法做到我要的效果嗎?

--

All Comments

Edwina avatarEdwina2010-02-26
httpd-userdir.conf 可以改路徑啊
有的照群組分資料夾的會用
Daph Bay avatarDaph Bay2010-02-27
<Directory "/home/*/*/public_html">
Carol avatarCarol2010-02-27
!!
Jake avatarJake2010-03-02
不行耶,因為 userdir 那邊吃不到第二個 *,就算 directory
Lauren avatarLauren2010-03-02
設了兩層 <Directory "/home/*/home/*/www"> 它他還是認定
userdir 是 /home/*/www
Irma avatarIrma2010-03-05
我就是用三樓那種寫法耶
George avatarGeorge2010-03-06
buganini,我知道你的意思了,不過我狀況和你不太相同
Donna avatarDonna2010-03-09
我的實際 user home 和 passwd 裡的 user home 不一樣
所以在 userdir 這個 directive 就沒法設定成功
Callum avatarCallum2010-03-13
mod_userdir 這條路應該是不通了,但我看 apache 的文件上
David avatarDavid2010-03-18
mod_rewrite 用上述方式可以讀取指定實體目錄,但我試的結果
Isla avatarIsla2010-03-20
竟然是以 DocumentRoot 為起點...