php - 如何向阻止使用PHP或其他方法访问URL的客户端显示网页?

时间:2016-12-26 10:33:27

标签: php ajax apache

我需要你的帮助。 我有一个网站...我们称之为website A,我试图使用ajax从website B获取内容(它们不在同一台服务器上)。原因是我的国家有一个互联网提供商,如果您使用此提供商,则无法连接到website B。但是,每个人都可以连接到website A。因此,有些客户无法从website B获取内容。

我的想法是:当您连接到website A时,会向website B发出ajax请求以获取内容。问题是ajax仍然要求向website A发出请求的人必须能够访问website B

website A的访问者是否可以使用website A所连接的互联网连接从website B获取内容,然后通过website A直接显示?

这是我试图做的,但是没有用 任何帮助将不胜感激。

<script>
    jQuery.ajax({
        url: 'https://websiteB.com?a=information&id=<?=$id?>',
        type: 'GET',
        data: {
        },
        success: function(data){
            jQuery('#content').html(data);
        },
    });
</script>

1 个答案:

答案 0 :(得分:-2)

为了从阻止来自希望访问内容的客户端的连接的站点检索内容,但未阻止客户端连接到的服务器,您可以使用website B简单地获取内容server来自website Aallow_url_fopen())的PHP,然后将其打印到客户端的屏幕上。

这不允许他们关注链接或其他任何内容,但您可以通过这种方式检索单个页面的内容。

如果您希望镜像整个站点,可以使用apache反向代理(参见第2部分)

同样重要的是要注意,您需要确保true

php.ini文件中的设置website A设置为websiteA

在文件get_website_b.php

中的<?php $websiteBcontent = file_get_contents( 'http://www.websiteB.com/'); print_r($websiteBcontent); ?>

website B

第2部分

要将website A等整个域镜像到httpd.conf,您可以在apache <VirtualHost www.websiteA.com:*> ProxyPreserveHost On ProxyPass / http://www.websiteB.com/ ProxyPassReverse / http://www.websiteB.com/ ServerName websiteA.com </VirtualHost> 文件中添加虚拟主机条目

mod_proxy

您还必须确保已加载loadModule模块,可以使用LAUNCHER指令加载。

(见https://httpd.apache.org/docs/current/mod/mod_so.html#loadmodule

相关问题