您好我必须在我网站的所有其他PHP文件中包含一个PHP文件。
这是我的站点地图示例:
|index.php
|foolder1
|| file1.php
|| check.php
|foolder2
|| file2.php
|foolder3
|| file3.php
我希望所有PHP文件都包含check.php
,我必须说我无法编辑php.ini
我知道有php_value auto_prepend_file "check.php"
但我不知道这个函数是怎么回事然后我请求帮助使用php_value auto_prepend_file
或其他方式将我的文件包含在所有其他PHP文件中?提前谢谢。
修改
我知道在StakOverflow中有一些这样的问题,但是我无法编辑php.ini(一些服务器限制...)而我只是尝试将php_value auto_prepend_file "foolder1/check.php"
放入.htaccess
它适用于index.php
但不适用于file1.php
,file2.php
,...
答案 0 :(得分:1)
更好的方法可能是使用所谓的前控制器模式。
<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
# Explicitly disable rewriting for front controllers
RewriteRule ^app_dev.php - [L]
RewriteRule ^app.php - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /app.php [QSA,L]
</IfModule>
您可以让您的Web服务器将所有请求传递到app.php
,然后引导应用程序,然后将请求传递给相关脚本。
// app.php
//
// Do shared steps like setup the database
switch($_SERVER['REQUEST_URI']) {
case "foo/bar":
require "foo/bar.php";
break;
case "baz/woo":
require "baz/woo.php";
break;
default:
require "404.php";
}
这里的主要优点是您从实际文件结构中抽象出URL:从URL中删除服务器技术,这是一种很好的做法。
答案 1 :(得分:0)
我假设你正在使用apache2。
让我们来谈谈Ubuntu 14.04
修改
etc/apache2/sites-available/000-default.conf
在 VirtualHost
中添加以下行php_value auto_prepend_file "/var/www/html/check.php"
重启apache服务器。 我测试了这个及其工作
编辑: 我试过.htaccess,这对我也有用。
请注意2件事
1).htaccess已启用 How to enable use of .htaccess in Apache on Ubuntu
2)为check.php提供绝对路径
无论如何都为我工作