我知道您不能简单地在htaccess中设置DocumentRoot,但这是我可以访问的全部内容。有工作吗?我该怎么办?或者这是这样的设置的错误配置?
我有一个开发服务器,其中:www.foo.com映射到/ usr / www / users / foo。
然后我
如何设置$_SERVER['DOCUMENT_ROOT']
分别映射到/ usr / www / users / foo / peter和/ usr / www / users / foo / paul?
感谢。
答案 0 :(得分:3)
根据我的经验,我学会了永远不要相信任何$_SERVER变量。相反,我使用dirname()和一个公共包含文件的组合自己设置DOC_ROOT,我确定它的位置永远不会改变。很多常见的框架会在处理所有请求的dispatch或index文件中做类似的事情。
示例应用程序文件夹结构:
-/usr/www/users/ -peter/ -script.php -paul/ -script.php -index.php
//index.php
DEFINE('ROOT_PATH', dirname(__FILE__));
echo ROOT_PATH; // /usr/www/users/
关于php的magic constants like __FILE__
希望有所帮助。
答案 1 :(得分:2)
DocumentRoot就是这样:特定子域的根(/)uri的文件系统位置。
当处理.htaccess时,改变它已经太晚了。为什么?嗯...因为您正在访问的.htaccess文件位于所述文件系统位置!
话虽如此,您可以创建一个新常量并使用$_SERVER['DOCUMENT_ROOT']
作为其中的一部分。