相对于htaccess文件,使用htaccess自动预置PHP文件

Omi*_*mid 10 php .htaccess

我用了:

php_value auto_prepend_file "file.php"
Run Code Online (Sandbox Code Playgroud)

.htaccess是在public_html文件夹中.

现在,当我跑,public_html/sub/index.php我得到这个错误:

Fatal error: Unknown: Failed opening required 'file.php'
Run Code Online (Sandbox Code Playgroud)

如何使用auto_prepend_fileflag来包含相对于.htaccess文件的文件?

Mic*_*ski 12

该文件必须在PHP中include_path.因此,您必须将文件的目录设置为include_path内部php.ini,或者使用php_value语句在.htaccess中执行.

php_value include_path ".:/path/to/file_directory"
php_value auto_prepend_file "file.php"
Run Code Online (Sandbox Code Playgroud)

如果你在.htaccess中使用上面的方法,请务必include_path从php.ini中复制并添加,:/path_to/file_directory这样你就不会丢失任何已经需要的包含.

或者,只需直接在php.ini中添加:/path/to/file_directory即可include_path

更新

如果无法修改include_path,则可以尝试指定相对路径auto_prepend_file.这应该工作,因为发送的文件路径处理相同,就像调用它一样require():

php_value auto_prepend_file "./file.php"
Run Code Online (Sandbox Code Playgroud)


小智 6

在你的.htaccess中

php_value auto_prepend_file /auto_prepend_file.php
php_value auto_append_file /auto_append_file.php
Run Code Online (Sandbox Code Playgroud)

接下来在root中创建2个文件

1)/auto_append_file.php

$appendFile = $_SERVER['DOCUMENT_ROOT'] . '/append.php';
require_once($appendFile);
Run Code Online (Sandbox Code Playgroud)

2)/auto_prepend_file.php

$prependFile = $_SERVER['DOCUMENT_ROOT'] . '/prepend.php';
require_once($prependFile);
Run Code Online (Sandbox Code Playgroud)

现在它应该在本地和实时服务器上工作,无论物理路径或网站提供每个网站使用相同的文件名append.php和prepend.php.