投稿 评论 顶部

PHP 伪静态技术

佚名 网络安全
下面是生成伪静态地址和逆转伪静态地址的两个函数,这两个函数在相应的位置引用就可以实现将http://www.zhongya.cn/certificate_page.php?clid=22转成这样的http://www.zhongya.cn/certificate_page.php/clid_22.htm形式。

/******************************
使用参考:
将此http://www.zhongya.cn/company/companyshow.php?action=list&page=2 地址生成http://www.zhongya.cn/company/companyshow.php/
action_list/page_2.htm形式

$url="http://www.zhongya.cn/company/companyshow.php?action=list&page=2";
$urlStr=MakeUrlHtml($url);
echo $urlStr;
*****************************/
function MakeUrlHtml($url)
{
$durl=parse_url($url);
$urlStr="";
if($durl['host']) $urlStr.=$durl['scheme']."://".$durl['host'];
if($durl['path']) $urlStr.=$durl['path'];
if($durl["query"]){
$durl=explode("&",$durl["query"]);
foreach($durl as $surl)
{
$gurl=explode("=",$surl);
$eurl[]=$gurl[0]."_".$gurl[1];
}
$tmpurl=join("/",$eurl).".htm";
$urlStr.="/".$tmpurl;
}
return $urlStr;
}

/******************************
描 述:完成将伪静态地址还原成$_GET形式
使用参考:
将此http://www.zhongya.cn/company/companyshow.php/
action_list/page_2.htm地址
还原出$_GET["action"]=list/$_GET["page"]=2?
ParseUrl();
*****************************/
function ParseUrl(){?
if($_SERVER['PATH_INFO']!=""){?
$pathinfo=substr($_SERVER['PATH_INFO'],1);?
$pathinfo=str_replace(".htm","",$pathinfo);
$tmp=explode("/",$pathinfo);
foreach($tmp as $val){
$path=explode("_",$val);?
$count=count($path);?
for($i=0;$i<$count;$i+=2){?
$_GET[$path[$i]]=$path[$i+1];?
}
}?
}?
}?

伪静态是相对真实静态来讲的.通常我们为了更好的缓解服务器压力,和增强搜索引擎的友好面.都将文章内容生成静态页面.但有时为了实时的显示一些信息.或者还想运用动态脚本解决一些问题.不能用静态的方式来展示网站内容.可这就损失了对搜索引擎的友好.怎么样在两者之间找个中间方法呢,这就产生了伪静态技术.