PHP & .htaccess:多个目录的预置文件



我想使用.htaccess自动预置一个 PHP 脚本。我知道有一个指令要这样做。我在 Web 根目录中的.htaccess文件中有以下内容:

php_value auto_prepend_file "./init.php"

init.php文件的内容包括:

<?php
$_SERVER['WEB_ROOT']=
str_replace($_SERVER['SCRIPT_NAME'],'',
$_SERVER['SCRIPT_FILENAME']);

这将计算 Web 根目录的路径并将其放入超全局。这是我能想到的唯一实用的方法,可以跟踪包含之类的内容的网络根目录。

问题是这仅适用于 Web 根目录中的 PHP 脚本。如果脚本本身位于子目录中,则会出现错误,因为init.php文件不在当前目录中。我不想指定init.php的绝对路径,因为目前电流有点不稳定。

我可以想到2个解决方案:

  • 在子目录中包含一个.htaccess文件,该文件使用相对路径指向父目录 (../init.php(
  • 在所有子目录中包含一个init.php文件

有没有另一种方法可以指定适用于所有子目录的预置文件?

如果做不到这一点,有没有另一种方法可以将 Web 根放入一个没有这种废话的超级全局?

定义相对于自动预置文件的路径。

初始化.php

define('WEBROOT', __DIR__);

然后,您应该能够在应用程序中的任何位置使用WEBROOT。或者,如果您想坚持当前的方法:

$_SERVER['WEB_ROOT'] = __DIR__;

只是好奇。为什么不直接使用$_SERVER['DOCUMENT_ROOT']. 这不是指你的网络根目录吗?

相关内容

  • 没有找到相关文章

最新更新