2009-08-28 81 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/ 

更多信息,可以帮助。