2009-08-28 79 views
0

我知道你不能簡單地在htaccess中設置DocumentRoot,但它是我所能訪問的。有沒有解決辦法?我應該如何繼續?或者這是這樣的設置的錯誤配置?

我有一個dev服務器,其中:www.foo.com映射到/ usr/www/users/foo。

我然後有

  • www.foo.com/peter =>的/ usr /網絡/用戶/富/彼得
  • www.foo.com/paul =>的/ usr /網絡/用戶/富/保羅

我怎樣才能設置$_SERVER['DOCUMENT_ROOT']映射到/ usr/WWW /用戶/富/彼得和/ usr/WWW /用戶/富/保羅分別?

謝謝。

回答

2

DocumentRoot正是:特定子域的根(/)uri的文件系統位置。

在處理.htaccess時,現在已經太晚了無法更改它。爲什麼?那麼......因爲你正在訪問的.htaccess文件位於所說的文件系統位置!

話雖如此,你可以創建一個新的常量,並使用$_SERVER['DOCUMENT_ROOT']作爲它的一部分。

+0

如果我有權訪問httpd.conf,那麼在上面的問題中,我能夠完成我想要的嗎? – frio80 2009-08-28 21:19:20

3

根據我的經驗,我學會了從不信任任何$_SERVER變量。相反,我已經使用dirname()和一個常見的包含文件組合自己設置了DOC_ROOT,該文件的位置肯定不會改變。許多通用框架在處理所有請求的調度或索引文件中都會做類似的事情。

示例應用程序文件夾結構:在PHP的magic constants like __FILE__

希望

 
-/usr/www/users/ 
    -peter/ 
    -script.php 
    -paul/ 
    -script.php 
    -index.php 
//index.php 

DEFINE('ROOT_PATH', dirname(__FILE__)); 
echo ROOT_PATH; // /usr/www/users/ 

更多信息,可以幫助。