web页面要实现伪静态,主要目的是为了seo考虑的,因为静态url相对于动态url来说更利于搜索引擎的抓取。一般实现伪静态的方法都是通过.htaccess urlrewrite实现的。但是如果你的虚拟主机不支持urlrewrite的话,那就要另想办法了,这里和大家分享一下如何使用php程序来实现网站的伪静态功能。
由于每个网站要伪静态的url都不一样,所以这里就通过举几个例子说明一下实现的办法,具体自己如何实现伪静态还得根据自己的情况来。这里以本站链接为例:
http://php.hhsy.cc/open-source-plug-in/592.html
很久以前这个链接是:
http://php.hhsy.cc/article-23-592.html
以上链接的实际链接地址是:
http://php.hhsy.cc/article.php?class_id=23&id=592
那么对于这个url的伪静态程序可以如下这么来写:
(1)利用php程序对第一种url实现伪静态
<?php function mod_rewrite($url='',$rootURL='http://php.hhsy.cc/'){ 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://php.hhsy.cc/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://php.hhsy.cc/'){ 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://php.hhsy.cc/article-23-592.html'); echo '<pre>';print_r($_GET);
打印结果为:
Array
(
[0] => article
[1] => 23
[2] => 592
)
这里的$_GET[0]也可以去掉,如果是单一入口程序,$_GET[0]也许还是有用的。
当然对于以上程序,你可能感觉$_GET是个数字索引数组很不爽,其实这里也可以通过一定的办法将其生成关联数组。比如将以上url伪静态成为以下这样的链接就可以了。
http://php.hhsy.cc/article/class_id/23/id/592.html
以上只是通过本站的url做简单的分析介绍如何用程序实现伪静态功能。其实对于一个网站,你对他的url形式进行一下总结,会发现他也不过就那么几种而已。像上面这样使用php程序实现url伪静态还是非常简单的。