Php 如何将文件从主域包含到子域

Php 如何将文件从主域包含到子域,php,include,ini-set,Php,Include,Ini Set,要将文件从主域包含到子域吗 index.php-onsubdomain.example.com ini_set("allow_url_fopen", 1); ini_set("allow_url_include", 1); $host = $_SERVER['HTTP_HOST']; if($host == 'localhost'){include("../navt.php");} else{include("http

要将文件从主域包含到子域吗

index.php-on
subdomain.example.com

ini_set("allow_url_fopen", 1);
ini_set("allow_url_include", 1);    
$host = $_SERVER['HTTP_HOST'];
if($host == 'localhost'){include("../navt.php");}
else{include("https://example.com/navt.php");}
在本地主机上-没有问题(win 10、xampp、chrome)
在远程服务器上-我仍然得到以下信息:
include():https://wrapper在服务器配置中被allow\u url\u include=0禁用,包括两个重要细节:

  • 它只能在“PHP_INI_SYSTEM”级别更改,即。它不能在运行时设置,也不能由共享服务器上的单个用户设置
  • 自从PHP7.4以来,它就被弃用了
这两者的原因相同:此设置非常危险。通过思考如何部署代码,为您的问题提出一个替代解决方案是非常明智的。例如:

  • 将需要在不同子域之间共享的文件放在磁盘上的某个位置,并使用普通(非URL)
    include
    引用这些文件
  • 创建一个可同时部署到所有子域的共享库
  • 对所有子域使用相同的应用程序,并使用代码检测正在显示的子域

该错误向我表明,您的主机提供商覆盖了您使用的INI设置,而不仅仅是将文件复制粘贴到子域的目录中?您还可以执行
其他{echo file\u get\u contents(“https://example.com/navt.php);}
instead@nice_dev-因为事实上我有9个subdomains@qadenza尽管如此,这是可行的,非常感谢。如何使文件夹
共享
。如果我将
navt.php
放在该文件夹中,我仍然需要使用主域中的
include()
url@qadenza“共享”的意思是“使用相同的”;它的外观取决于代码的结构。关键是您需要考虑服务器上的文件,而不是URL。