摆弄公共树

时间:2018-03-30 17:30:34

标签: apache .htaccess apache2.4

我必须处理不允许非公共目录的托管服务。我通常可以使用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

1 个答案:

答案 0 :(得分:1)

DOCUMENT_ROOT实际上是保留的Apache + PHP变量,无法在.htaccess或Apache配置中覆盖。 DOCUMENT_ROOT indicates document root directory of your website

您可以使用任何其他变量名称,例如DOC_ROOT