0

如何创建一个使用 URL 进行重定向的 php。即 -Redirect-To.com/Change.php?=Google.com然后去谷歌等

我想创建一个用户访问的 php 页面

Redirect-To.com/Change.php?=Google.com
or
Redirect-To.com/Change.php?=Youtube.com
or
Redirect-To.com/Change.php?=Yahoo.com

然后被访问的页面重定向到谷歌或之后的任何页面?=

4

2 回答 2

1

这基本上是 URL 缩短器所做的,除了它们从数据库中查找目标并可能存储一些跟踪信息。

查看header可让您设置 HTTP 标头的功能。您要设置302重定向,即临时移动,以及Location设置新位置的标头。

http://php.net/manual/en/function.header.php

header('HTTP/1.1 302 Moved Temporarily');
header('Location: ' . $newLocation');

301是另一种常见的重定向代码,但它表示“永久移动”,如果该人再次单击您的链接,许多浏览器会缓存该状态并且不会访问您的网站。

HTTP 规范说您应该提供带有重定向的完整 URL,尽管大多数浏览器在没有它的情况下也可以工作。

您可能还想将目的地列入白名单;用户可能会点击指向您网站的链接并被重定向到恶意第三方拥有的网站。认为他们在您的网站范围内,他们可能会输入信息或执行允许第三方访问其数据的操作。

于 2013-08-13T16:47:44.670 回答
-1

在 URL 中,没有键的值将被忽略,所以你应该写:

...change.php/?redirect= http://www.google.com

然后您可以使用 访问“重定向到”地址$_GET['redirect']

要重定向到给定地址,您可以使用 to Location 标头(确保在调用函数之前没有将任何内容发送到输出):

header('Location: ' . $_GET['redirect']);

您必须像我上面写的那样以“http(s)://”开始重定向 URL。

如果你想停止脚本(因为它不会在重定向函数之后立即停止),你必须调用die()exit()函数。

(如果更短的 URL 更适合您,该 URL 可以只是 ...change.php/? http://www.google.com,然后您可以使用 访问该地址$_SERVER['QUERY_STRING']。)

于 2013-08-13T16:59:14.930 回答