«

php如何用程序实现伪静态

时间:2024-1-30 09:23     作者:韩俊     分类: PHP


web页面要实现伪静态,主要目的是为了seo考虑的,因为静态url相对于动态url来说更利于搜索引擎的抓取。一般实现伪静态的方法都是通过.htaccess urlrewrite实现的。但是如果你的虚拟主机不支持urlrewrite的话,那就要另想办法了,这里和大家分享一下如何使用php程序来实现网站的伪静态功能。

由于每个网站要伪静态的url都不一样,所以这里就通过举几个例子说明一下实现的办法,具体自己如何实现伪静态还得根据自己的情况来。这里以本站链接为例:

http://www.maopiaopiao.com/open-source-plug-in/592.html

很久以前这个链接是:

http://www.maopiaopiao.com/article-23-592.html

以上链接的实际链接地址是:

http://www.maopiaopiao.com/article.php?class_id=23&id=592

那么对于这个url的伪静态程序可以如下这么来写:

(1)利用php程序对第一种url实现伪静态

<?php
function mod_rewrite($url='',$rootURL='http://www.maopiaopiao.com/'){
    global $_GET;
    $url=empty($url)?cur_page_url():$url;
    $url=str_ireplace(array($rootURL,'.html'),'',$url);
    $url=explode('/',$url);
    $_GET=$url;
    return $_GET;
}
/*获取当前页面的URL(包括参数)*/
function cur_page_url(){
    $pageURL='http';
    $_SERVER['HTTPS']=='on' && $pageURL.='s';
    $pageURL.='://';
    $pageURL.=$_SERVER['SERVER_PORT']!='80'?$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$_SERVER['REQUEST_URI']:$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
    return $pageURL;
}
mod_rewrite('http://www.maopiaopiao.com/open-source-plug-in/592.html');
echo '<pre>';print_r($_GET);

打印结果为:

Array
(
    [0] => open-source-plug-in
    [1] => 592
)

(2)利用php程序对第二种url实现伪静态

<?php
function mod_rewrite($url='',$rootURL='http://www.maopiaopiao.com/'){
    global $_GET;
    $url=empty($url)?cur_page_url():$url;
    $url=str_ireplace(array($rootURL,'.html'),'',$url);
    $url=explode('-',$url);
    $_GET=$url;
    return $_GET;
}
/*获取当前页面的URL(包括参数)*/
function cur_page_url(){
    $pageURL='http';
    $_SERVER['HTTPS']=='on' && $pageURL.='s';
    $pageURL.='://';
    $pageURL.=$_SERVER['SERVER_PORT']!='80'?$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$_SERVER['REQUEST_URI']:$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
    return $pageURL;
}
mod_rewrite('http://www.maopiaopiao.com/article-23-592.html');
echo '<pre>';print_r($_GET);

打印结果为:

Array
(
    [0] => article
    [1] => 23
    [2] => 592
)

这里的$_GET[0]也可以去掉,如果是单一入口程序,$_GET[0]也许还是有用的。

当然对于以上程序,你可能感觉$_GET是个数字索引数组很不爽,其实这里也可以通过一定的办法将其生成关联数组。比如将以上url伪静态成为以下这样的链接就可以了。

http://www.maopiaopiao.com/article/class_id/23/id/592.html

以上只是通过本站的url做简单的分析介绍如何用程序实现伪静态功能。其实对于一个网站,你对他的url形式进行一下总结,会发现他也不过就那么几种而已。像上面这样使用php程序实现url伪静态还是非常简单的。

标签: php php教程

热门推荐