如何在 .htaccess 文件中指定 auto_prepend_file 而无需硬编码绝对路径?

2024-03-12

我有一个 PHP 文件,我想在每个请求开始时执行。我在 htaccess 文件中指定了这一点:

php_value auto_prepend_file "alwaysrunthis.php"

问题是,该指令的值是在目标脚本的上下文中执行的,而不是在 .htaccess 文件位置的上下文中执行的。因此,如果我正在执行的脚本与前置文件位于同一目录中,它就可以工作,否则就不行。

我意识到我可以使用绝对路径,但这不是很便携。我可以在 .htaccess 中访问任何变量以在执行时生成绝对路径吗?


简短的回答,不。

长答案,你也许可以让它按照你想要的方式工作。

您可以创建自动前置文件以使用$_SERVER['DOCUMENT_ROOT']var 使用 switch/if-else 结构来确定要包含哪个文件。

或者你可以使用__FILE__var 结合realpath包含/需要您想要的“前置”文件。

自动前置.php
require_once(realpath(__FILE__) . '/prepend.php');

//edit:
又想了一下,__FILE__可能会引用前置文件而不是请求的文件,因此它可能无法按预期工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 .htaccess 文件中指定 auto_prepend_file 而无需硬编码绝对路径? 的相关文章

随机推荐