我必须处理不允许非公共目录的托管服务。我通常可以使用mod_rewrite
插入额外的目录级别:
# /home/foo/public_html/.htaccess
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
...所以http://example.com/test.php
加载/home/foo/public_html/public/test.php
而不是/home/foo/public_html/test.php
。但这不会改变DOCUMENT_ROOT
env变量的值。
有没有办法更改.htaccess
文件中的变量?我的尝试并没有太远 - 我设定的价值:
SetEnv DOCUMENT_ROOT /home/foo/public_html/public
...最终在REDIRECT_DOCUMENT_ROOT
。
答案 0 :(得分:1)
DOCUMENT_ROOT
实际上是保留的Apache + PHP变量,无法在.htaccess
或Apache配置中覆盖。 DOCUMENT_ROOT
indicates document root directory of your website
您可以使用任何其他变量名称,例如DOC_ROOT
。