Javascript 用php编写客户端重定向服务器端

Javascript 用php编写客户端重定向服务器端,javascript,php,.htaccess,redirect,Javascript,Php,.htaccess,Redirect,我正在寻找一个客户端重定向到PHP中的另一个域 我不想执行301-302-307等重定向的原因是因为我希望页面向爬虫发送200HTTPOK响应 通常,我在静态Web主机(如S3)上使用模糊JavaScript来实现这一点,但是,我知道爬虫程序可能会获取JS,因为它是客户端 我使用的非目标JS代码示例 window.location.href = "http://yourURL.com"; 然而,对于爬虫来说,使用PHP要困难得多,所以我想用PHP进行类似的重定向 如果有人能分享他或她对这件事的

我正在寻找一个客户端重定向到PHP中的另一个域

我不想执行301-302-307等重定向的原因是因为我希望页面向爬虫发送200HTTPOK响应

通常,我在静态Web主机(如S3)上使用模糊JavaScript来实现这一点,但是,我知道爬虫程序可能会获取JS,因为它是客户端

我使用的非目标JS代码示例

window.location.href = "http://yourURL.com";
然而,对于爬虫来说,使用PHP要困难得多,所以我想用PHP进行类似的重定向

如果有人能分享他或她对这件事的最佳方式的看法,那就太好了

提前谢谢

您可以在Php中使用header()函数:

<?php

header('Location: http://yourURL.com/');
您需要的是
header()
函数:

<?php
header("Location: http://yourURL.com/");
exit;
如中所述:

[…]第二种特殊情况是“位置:”标题。它不仅将此标头发送回浏览器,而且还将重定向(302)状态代码返回到浏览器,除非已设置201或3xx状态代码

因此,从技术上讲,你可以:

<?php
header('HTTP/1.1 201 Created'); // or as of PHP 5.4: http_response_code(201);
header('Location: http://yourURL.com/');

这将提供一个
200
响应代码。

PHP只能通过发送HTTP代码、Javascript或HTML元刷新标记来重定向页面。如果您使用的是模糊的Javascript,这可能是最好的方法。

爬虫程序会注意到这一点,不是吗?他们会注意到的:这只是发送一个302@Beat你会有解决办法吗?斯诺拉夫,为什么你认为302重定向不好?爬虫会很好地索引它。这也发送了一个302I。我假设爬虫知道如何获取它。(例如,尝试一下,它也会显示重定向的位置)除非您预先检测到爬虫程序并手动停止脚本发送重定向(php或其他),爬虫程序将始终能够检测到重定向。如果我使用模糊JS,爬虫程序还没有接收重定向。@Snowlav,那么我可能会说(不知道背后的原因)你已经取得了尽可能好的局面。
<?php
$content = file_get_contents("http://yourURL.com/");
echo $content; // this will output the full HTML from the webpage.
<?php
ini_set('allow_url_fopen', 'on');