我目前正在使用这个插件http://wordpress.org/extend/plugins/repress/,它基本上使我的网站成为一个代理,以便用户可以访问像这样的审查网站
www.mywebsite.com/proxy/www.cnn.com
Run Code Online (Sandbox Code Playgroud)
该插件运行良好,但是当涉及到绝对链接时,插件无法正确解析它并且链接仍然被阻止.插件开发已停止.所以我需要编写自己的脚本.我一直在各处搜索并阅读我能找到的教程,但没有一个特别有助于我这方面.
我知道如何使用php curl获取网站并在空白页面上回显它.我不知道的是如何将代理脚本设置为像上面用户可以键入的示例一样工作
www.mywebsite.com
Run Code Online (Sandbox Code Playgroud)
其次是
/proxy.php
Run Code Online (Sandbox Code Playgroud)
那么他们的目标网站
/www.cnn.com
Run Code Online (Sandbox Code Playgroud)
目前我有这个设置:
<?php
$url = 'http://www.cnn.com';
$proxy_port = 80;
$proxy = '92.105.140.115';
$timeout = 0;
$referer = 'http://www.mydomain.com'
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt($ch, CURLOPT_PROXYPORT, $proxy_port);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_PROXYTYPE, 'HTTP');
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);*/
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_REFERER, $referer);
$data = curl_exec($ch);
curl_close($ch);
echo $data;
?>
Run Code Online (Sandbox Code Playgroud)
这会拉动主页但不会检索到CSS或图像.同样,所有相关链接都被打破.我不知道如何应用proxy_port和代理变量.我试过了
92.105.140.115:80/www.cnn.com
Run Code Online (Sandbox Code Playgroud)
但这不起作用.因为我在一个示例站点上找到它,所以我不太了解这段代码.
任何答案或教程链接都非常受欢迎.
谢谢!
拥有一个完全正常运行的代理并不那么简单.有许多这样的项目已经可用.给出任何一个镜头:
玩得开心!