php - 如何在不对绝对路径进行硬编码的情况下在我的 .htaccess 文件中指定 auto_prepend_file?

标签 php apache .htaccess

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

php_value auto_prepend_file "alwaysrunthis.php"

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

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

最佳答案

简答,不。

答案很长,您可能可以让它按照您想要的方式工作。

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

或者您可以将 __FILE__ var 与 realpath 结合使用,以包含/要求您想要的“前置”文件。

auto-prepend.php
require_once(realpath(__FILE__) . '/prepend.php');

//编辑:
再考虑一下,__FILE__ 可能会引用前置文件而不是请求的文件,因此它可能无法按预期工作。

关于php - 如何在不对绝对路径进行硬编码的情况下在我的 .htaccess 文件中指定 auto_prepend_file?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6362691/

相关文章:

php - WordPress 向页面添加元描述

php - 尝试将我的数据库导出为 XML 文件并出现 "Extra content at end of document"错误

java - Tomcat、 Apache : Failover not working even after configuration

.htaccess - 将 .htaccess 中的一个域重定向到另一个域

javascript - 一种模式,具有从 sql 分配的不同按钮 id

php - SQL - 按相关性对结果排序

javascript - 无论我尝试什么,请求的资源错误上均不存在 'Access-Control-Allow-Origin' header

javascript - 如何在我的网站中加载 https 中的文件

尽管增加,PHP 内存限制已耗尽

.htaccess - 简单的 Htaccess 问题