在服务器 B 上,将以下行放入您的.htaccess
文件中:
AddType text/plain .php
您需要服务器 B 输出的代码供服务器 A 读取。目前它正在服务器 A 上处理。
这将使您的代码对公众可见。它还将阻止在该目录中执行任何其他PHP。您可以使用<Files>
指令使其仅适用于特定文件,但它始终对公众可用。在 PHP 和.htaccess
.
如果您不希望这种情况发生,也有办法做到这一点,但它们有点复杂。
编辑 以响应请求
如果您仍想在服务器 B 上执行 PHP 并有选择地包含文件,我建议创建一个includer.php
内容如下的新文件:
<?php
if ('my-secret-key' == $_GET['auth']) {
if (is_readable($_GET['file'])) {
header('Content-type: text/plain');
echo file_get_contents($_GET['file']);
} else {
header('Status: 404 Not found');
header('Content-type: text/plain');
die('<?php /* File not found */ ?>');
}
} else {
header('Status: 403 Forbidden');
header('Content-type: text/plain');
die('You do not have permission to access this page.');
}
然后在您的服务器 A 上:
include ('http://example.com/includer.php?auth=my-secret-key&file=Test.php');
如果可以的话,您还应该考虑在服务器 B 上使用basename()
on$_GET['file']
以提高安全性,并设置hash()
您的auth
参数。