Php页面header跳转的方法及错误矫正

因为准备架设双博客,所以把之前的技术博客移动到了网站根目录下的coder子文件夹,在WP后台修改了网站首页地址之后,Blog运行恢复正常。但是之前的一些外链比如 http://www.beitown.com/?p=420 此时无法链接到正确的文章页面。所以准备在根目录的index.php根据来路域名做一个判断及跳转。代码如下:

1
2
3
4
5
6
7
8
<?php
$url = $_SERVER['QUERY_STRING'];
if (stristr($url,"p="))
{
   //echo "url=:" . $url;
   header('Location:/coder/?'.$url);
}
?>

$_SERVER["QUERY_STRING"]表示查询(query)的字符串,浏览器通过http://www.beitown.com/?p=420地址访问index.php时,$_SERVER["QUERY_STRING"]的值为”?”之后的表达式,即p=420
通过stristr函数对url进行包含判断,如果含有表达式”p=”则进入相应的操作。
header函数意为跳转,使用方法参考demo

另外这里有一个错误介绍一下,如果在header前调用了echo会出现如下警告:

Warning: Cannot modify header information – headers already sent by….

解决办法是将echo去掉即可。
此时访问 http://www.beitown.com/?p=420将会跳转到新的文章页面即http://www.beitown.com/coder/?p=420中去。

BeiTown
2012.12.21

本文链接:Php页面header跳转的方法及错误矫正

转载声明:BeiTown原创,转载请注明来源:BeiTown's Coder 编码之源,谢谢


Tags: , , ,

发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>