[英]PHP - How to restrict clients from accessing other URL by random token
[英]php - how to display a web page to clients who are blocked from accessing a URL with PHP or some other method?
我需要你的帮助。 我有一个网站...可以将其称为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>
为了从阻止访问希望访问内容的客户端的连接的站点检索内容,但没有阻止与客户端连接的服务器,您可以使用server
website A
PHP简单地获取website B
的内容( website A
),然后将其打印到客户端的屏幕上。
这将不允许他们跟踪链接或其他任何内容,但是您可以通过这种方式检索单个页面的内容。
如果您希望镜像整个站点,则可以使用apache反向代理(请参阅第2部分)
同样重要的是要注意,您需要确保将website A
的php.ini
文件中的allow_url_fopen()
设置设为true
。
在websiteA
上的文件get_website_b.php
<?php $websiteBcontent = file_get_contents( 'http://www.websiteB.com/'); print_r($websiteBcontent); ?>
第2部分
要将整个域名(例如website B
镜像到website A
,可以在您的apache httpd.conf
文件中添加一个virtualhost条目。
<VirtualHost www.websiteA.com:*>
ProxyPreserveHost On
ProxyPass / http://www.websiteB.com/
ProxyPassReverse / http://www.websiteB.com/
ServerName websiteA.com
</VirtualHost>
您还必须确保已加载了可以使用loadModule
指令加载的mod_proxy
模块。
(请参阅https://httpd.apache.org/docs/current/mod/mod_so.html#loadmodule )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.