有没有办法在服务器端创建“iframe-like”?事实上,我需要从我们网站的管理部分加入我社会内部网的某些页面。
我已经有一个数据库的SQL链接工作正常,但在这里我将访问这些页面而不复制网络服务器上的源代码。
我的基础设施如下:
网络服务器位于DMZ中,并具有以下本地IP:192.168.63.10 。 我们的Intranet服务器不在DMZ中,并具有以下IP: 192.168.1.20。
我们的防火墙有多项规则,我刚刚添加了以下内容: DMZ-> LAN允许HTTP / HTTPS 流量和 LAN-> DMZ允许HTTP / HTTPS (就像我们为SQL重定向所做的那样)
我尝试过以下PHP函数:
$ch = curl_init();
// set URL and other appropriate options (also tried with IP adress instead of domain)
curl_setopt($ch, CURLOPT_URL, "http://intranet.socname.ch/");
curl_setopt($ch, CURLOPT_HEADER, 0);
// grab URL and pass it to the browser
curl_exec($ch);
// close cURL resource, and free up system resources
curl_close($ch);
我也试过了:
$page = file_get_contents('http://192.168.1.20/');
echo $page;
或者:
header('Location:http://192.168.1.20');
但在所有情况下,它可以从本地工作,但不是从互联网。从互联网上,它没有加载,一段时间后,表示服务器没有响应。
感谢您的帮助!
答案 0 :(得分:1)
您的第一个和第二个解决方案可行。您的网络服务器可以访问192.168.1.20吗? (在您的网络服务器上试用ping 192.168.1.20
)或解析主机名intranet.socname.ch
? (尝试nslookup intranet.socname.ch
)
您正在寻找的是“代理”,这是我发现的一个简单的PHP项目: https://github.com/Alexxz/Simple-php-proxy-script
下载回购,将example.simple-php-proxy_config.php
复制到simple-php-proxy_config.php
并更改$dest_host = "intranet.socname.ch";
它应该做的伎俩! (可能还需要更改$proxy_base_url
)