如何将$location
变量写入标题行?现在它什么都没找到......空白地址吧......
这是我到目前为止所拥有的:
$location='/ad?ad_id='.$id_nr;
Header( "Location: $location" );
顺便说一句,这是在我的电脑,虚拟服务器上,地址是绝对的!
没有?ad_id=.$id_nr
部分就可以了!
答案 0 :(得分:3)
好吧,header()
函数是header
而不是Header
和the URI in location headers must be absolute,而不是相对的。
答案 1 :(得分:0)
Location标头必须是完整格式的绝对地址,以http://或其他协议(如https)开头。您无法指定相对URL。
试试这个,将mysite.com替换为您网站的根网址:
<?php
$location='/ad?ad_id='.$id_nr;
Header( "Location: http://www.mysite.com/$location" );
// or, on your local machine
Header( "Location: http://localhost/$location" );
?>
您可能会考虑最终编写一个更有用的功能来为您完成工作:
<?php
function redirect_to($location, $halt = true) {
$root = $_SERVER['HTTP_HOST'];
header("Location: $root/$location");
if ($halt)
exit;
}
?>
答案 2 :(得分:0)
使用$ _SERVER ['HTTP_HOST']获取完整的网址。
不要忘记在标题调用后放置一个退出。脚本不会自动停止,你必须告诉它停止。
答案 3 :(得分:-1)
在你的位置变量中,我没有看到有效的文件扩展名是html或php。您确定没有文件的扩展名吗?
$location='/ad?ad_id='.$id_nr;
Header( "Location: $location" );