使用Apache .htaccess设置DYNAMIC Php $ _SERVER值($ _SERVER ['something'])

Nat*_*.B. 6 php apache .htaccess

这是对这个问题的一种解释,我们知道可以设置$_SERVERvar使用SetEnv.

接下来的问题是:有没有办法像这样使用SetEnv:

/var/www/www.example.com/module/unique_section/.htaccess:

SetEnv RESOURCE_ROOT %{DIRECTORY}
Run Code Online (Sandbox Code Playgroud)

/var/www/www.example.com/module/unique_section/some/path/file.php

<?php echo $_SERVER['RESOURCE_ROOT']; ?>
Run Code Online (Sandbox Code Playgroud)

输出: /var/www/www.example.com/module/unique_section/

Jos*_*osh 6

根据您需要的信息,您可以使用a RewriteRule.例如:

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT} (.*)
RewriteRule (.*) - [E=RESOURCE_ROOT:%1]
Run Code Online (Sandbox Code Playgroud)

将设置PHP var $_SERVER['RESOURCE_ROOT']$_SERVER['REDIRECT_RESOURCE_ROOT']Apache Document Root.见mod_rewrite的手册的全部细节,但一些组合%{DOCUMENT_ROOT},%{PATH_INFO}%{REQUEST_FILENAME}可以为你工作.

我不认为该.htaccess文件可能知道它所在的目录.所以我认为你需要在你的.htaccess文件中使用硬编码路径.举个例子:

RewriteEngine On
RewriteCond %{DOCUMENT_ROOT} (.*)
RewriteRule (.*) - [E=RESOURCE_ROOT:%1/module/unique_section/]
Run Code Online (Sandbox Code Playgroud)