我有一个PHP文件,要在每个请求的开头执行。我在我的htaccess文件中指定了它:
php_value auto_prepend_file "alwaysrunthis.php"
问题是,该指令的值是在目标脚本的上下文中执行的,而不是在.htaccess文件位置的上下文中。因此,如果我正在执行的脚本与prepend文件在同一目录中,但在其他情况下则不在,那么它就可以工作。
我意识到我可以使用绝对路径,但这不是很便携。我可以在.htaccess中访问任何变量来在执行时生成绝对路径吗?
简短回答,无
答案很长,你可能会让它像你想的那样工作。
您可以创建自动预处理文件以使用$_SERVER['DOCUMENT_ROOT']
var来确定使用开关/if-else构造包含哪个文件。
或者,您可以将__FILE__
var与realpath
结合使用,以包含/要求所需的"prepend"文件。
auto-prepend.phprequire_once(realpath(__FILE__) . '/prepend.php');
//编辑:
仔细想想,__FILE__
可能会引用prepend文件而不是请求的文件,因此它可能无法按预期工作。