网站迁移期间PHP绝对相对URL问题

网站迁移期间PHP绝对相对URL问题,php,Php,我正在将我的PHP文件迁移到新服务器。在旧服务器上,我在require\u once和include\u once指令中使用了绝对URL。更清楚地说,绝对URL指定存储index.html的位置 但是,新服务器需要相对URL。因此,如果A.php需要包含B.php,则必须指定从A到B.php的相对路径 php.ini中是否有强制php解释器接受绝对URL的设置 没有。如果您将path设置为var/www/something.php它是相对的,如果您将path设置为/var/www/somethi

我正在将我的PHP文件迁移到新服务器。在旧服务器上,我在
require\u once
include\u once
指令中使用了绝对URL。更清楚地说,绝对URL指定存储
index.html
的位置

但是,新服务器需要相对URL。因此,如果
A.php
需要包含
B.php
,则必须指定从
A
B.php
的相对路径


php.ini
中是否有强制php解释器接受绝对URL的设置

没有。如果您将path设置为
var/www/something.php
它是相对的,如果您将path设置为
/var/www/something.php
(或者在windows中设置为
C:\\var\\www\\something.php
),它是绝对的有一种方法可以配置新服务器来接受相对于
index.html
的URL

您正在
php.ini
中查找指令
include_path
。 解决方案是在与
index.html
(位于站点的根目录)相同的目录中创建php.ini文件,并设置:

然后,所有
include
require
指令将首先尝试在指定目录中搜索文件

以下是本指令的文档:

请注意,并非所有托管提供商都允许您使用自己的
php.ini
文件。我的意思是,有时候新的
php.ini
被忽略了。然后,您需要找到一种方法来更改原始的
php.ini

另一种方法是使用
$\u服务器['DOCUMENT\u ROOT']
常量:

include_once $_SERVER['DOCUMENT_ROOT'] . '/file.php'; 

您确定两台服务器上的绝对路径完全相同吗?这可能发生,但并不总是发生。这不是一个绝对的“URL”,而是一个绝对的文件系统“路径”。不,您不能重新映射路径。您可以创建符号链接,给定根权限等。因此,正如所指出的,这两者都是相对的,但在旧服务器上,它是相对于
index.html
,而在新服务器上,它是相对于示例中的
A.php
。如何配置新服务器以接受相对于
index.html
的URL?Thnks用于指出。这两者都是相对的,但在旧服务器上它是相对于
index.html
的,而在新服务器上它是相对于试图包含的文件的。虽然对我帮助不大,但可能是由于您指出的服务器限制。但为了将来的目的,可能会帮助在同一问题上结结巴巴的人。
include_once $_SERVER['DOCUMENT_ROOT'] . '/file.php';