我对php非常陌生,正在尝试构建一个重定向,该重定向使用不同URL的参数。
一个人将访问的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>
我真的很感激对初学者的帮助。
谢谢!
当您收到"内容"(文本、html、空格、任意位置)时,无法进行重定向。在调用header()函数之前,不应该执行此操作。
正如您所看到的,在调用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>
请记住:检查"<?php"标记之前是否有另一个空格或"新行"。
当您将session_start或php标头放在其他代码(例如html)下面时,会出现错误"无法修改标头信息-标头已由…发送"那么你应该换成:
<?php
//your php codes
//....
?>
<!DOCTYPE html>
....etc.
这必须工作
此说明适用于我修复seo重定向,但您可以用于所有
示例url: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);
}?>