PHP重定向与URL变量

时间:2015-03-01 22:01:42

标签: php redirect

我对php非常陌生,并尝试构建一个重定向,该重定向使用的URL参数因人而异。

一个人可以访问的网址如下:www.website1.com/redirect.php?p = p123 & r = 4 & s = 567

每个人的p,r和s都会改变

然后我想将它们重定向到其他类似的网站:

www.website2.com/的 P123 的.aspx R =的 4 &安培; S =的 567

这是我到目前为止所做的,但是它给了我一个错误"无法修改标题信息 - 标题已经由...发送..."

<html>
   <?php

      $fpvalue  = $_GET['p'];
      $frvalue  = $_GET['r'];
      $fsvalue  = $_GET['s'];

      header("Location: http://website2.com/".$fpvalue.".aspx?r=".$frvalue."&s=".$fsvalue);


   ?>
</html>

我非常感谢初学者的帮助。

谢谢!

3 个答案:

答案 0 :(得分:4)

当您发送了&#34;内容&#34;时,您无法进行重定向。 (text,html,space,wherever)。 在调用header()函数之前,不应该这样做。

正如你所看到的,你有一个&#34;&#34;在调用header()函数之前。

改变:

   <html>
   <?php

      $fpvalue  = $_GET['p'];
      $frvalue  = $_GET['r'];
      $fsvalue  = $_GET['s'];

      header("Location: http://website2.com/".$fpvalue.".aspx?r=".$frvalue."&s=".$fsvalue);


   ?>
   </html>

为此:

   <?php

      $fpvalue  = $_GET['p'];
      $frvalue  = $_GET['r'];
      $fsvalue  = $_GET['s'];

      header("Location: http://website2.com/".$fpvalue.".aspx?r=".$frvalue."&s=".$fsvalue);
      exit;
   ?>
   <html>
   </html>

请记住:检查是否还有其他空间或&#34;新行&#34;之前&#34;&lt; ?php&#34;标签

答案 1 :(得分:2)

错误&#34;无法修改标题信息 - 标题已经由...&#34;将session_start或php标题放在其他代码下方时导致的问题,例如: HTML 然后你应该改成:

<?php
//your php codes
//....
?>

<!DOCTYPE html>
....etc.

这必须有效

答案 2 :(得分:0)

此说明对我有用,可以修复seo重定向,但是您可以全部使用

示例网址:http://yourdomain.com/index2.php?area=xpto

示例index2.php文件:

<?php 

$fpvalue  = $_GET['area']; 

if ($fpvalue == 'xpto') {
    header("Location: http://newurl.com/", true, 301); 
}

else if ($fpvalue == 'loren') {
    header("Location: http://otherurl.com/", true, 301); 
}   

else if ($fpvalue == '') {
    header("Location: http://otherurl.com/", true, 301); 
}?>