在子域

时间:2016-01-04 02:55:48

标签: php

当我的网站位于www.mysite.com时,我能够包含具有以下值的文件......

$BaseINC = '/home/username/public_html';
include ($BaseINC."/2b/file.php");

但是,我移动了我的网站。它现在是另一个网址的子域名 - subdomain.newsite.com。既然我已将我的网站发布为子域名,则上述包含的方案无效。

我尝试了各种方案,例如/ subdomain / new-username / public_html,/ home / new-username / public_html / subdomain,但我遗漏了一些东西。

为了确保我理解从子域链接到子域与从子域链接到主域之间的区别,想象一下我是否将相同的文件发布到以下位置:

1)www.newsite.com/2b/file.php

2)subdomain.newsite.com/2b/file.php

有人可以告诉我如何修改这个......

$BaseINC = '/home/username/public_html';

...以便它将我连接到域上托管的文件(file.php)并告诉我如何修改它以便它包含托管在子域上的文件(file.php)?如果我知道两者的正确路径,那么它应该都有意义。 ;)

P.S。如果有更好的方法,我很高兴知道它。

2 个答案:

答案 0 :(得分:1)

包含来自其他服务器的文件可能会在您的网站上造成一些安全问题,无论如何,如果您真的想要这样做,您可以随时编辑您的php.ini配置并打开 allow_url_include ,然后您就可以使用以下内容包含您的代码:

<?php include http://subdomain.yourhost.com/file.php ?>

答案 1 :(得分:1)

如果cURL可用,这可能是一个选项......

$BaseURL = 'http://subdomain.domain.tld';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $BaseURL."/path/to/file.php");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_exec($ch);
curl_close($ch);

如果curl无法检索文件,您可能会看到问题。如果不经常更改远程文件,则可以合并一些缓存。在这种情况下,您将在本地保存文件并使用cron在后台下载文件并根据缓存版本进行检查。 使用cron也有助于超时等,所以你可以在本地包含文件。

另一种选择可能是使用htaccess。