我对php非常陌生,并尝试构建一个重定向,该重定向使用的URL参数因人而异。
一个人可以访问的网址如下:www.website1.com/redirect.php?p =
每个人的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>
我非常感谢初学者的帮助。
谢谢!
答案 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);
}?>