PHP内联URL重定向?

时间:2011-09-21 01:01:24

标签: php url redirect header onload

我想知道是否有可能让人们可以输入链接:

当人们访问时,它实际上会转到真正的链接。

这就是我所拥有的,但我不知道如何实施。

<?php
if( $_GET["k"] == "custom" ) header( "Location: {$_POST["first"]}_{$_POST["last"]}" );

$file = fopen( "link.php", "r" );

$data = fread( $file, filesize( "link.php" ) );


$first = $_GET["n"];
$last = fixN( $last );
$data = str_replace( "first", ucfirst( strtolower( $first ) ), $data );
$data = str_replace( "last", ucfirst( $last ), $data );


print  $data;

}
?>

在页面上;

<BODY onLoad="first">

即使你做了链接,它也只会抓住最后一部分。这是我需要它重定向到的。


<?php
if (isset($_SERVER['REQUEST_URI'])) AND filter_var(trim($_SERVER['REQUEST_URI']),     FILTER_VALIDATE_URL)) {

    header('Location: ' . $_SERVER['REQUEST_URI']);

}
?>
<html>
<head></head>
<body>
<a href="first">first</a>
</body>
</html>

这是确切的链接http://LikeTreasure.com/google.com

我不知道它有什么问题。

即使您指定了文件类型http://LikeTreasure.com/file.html

似乎总是发送整个网址。

1 个答案:

答案 0 :(得分:2)

只要您将URL重写为PHP文件......

if (isset($_SERVER['REQUEST_URI'])) AND filter_var(trim($_SERVER['REQUEST_URI']), FILTER_VALIDATE_URL)) {

    header('Location: ' . $_SERVER['REQUEST_URI']);

}

如果设置了REQUEST_URI环境变量(它将不在IIS中)并且它看起来像一个有效的URL,这将转发请求。