php如何用程序实现伪静态

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

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

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

很久以前这个链接是:

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

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

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

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

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

  1. <?php 
  2. function mod_rewrite($url='',$rootURL='http://www.daimajiayuan.com/'){ 
  3.     global $_GET
  4.     $url=empty($url)?cur_page_url():$url
  5.     $url=str_ireplace(array($rootURL,'.html'),'',$url); 
  6.     $url=explode('/',$url); 
  7.     $_GET=$url
  8.     return $_GET
  9. /*获取当前页面的URL(包括参数)*/ 
  10. function cur_page_url(){ 
  11.     $pageURL='http'
  12.     $_SERVER['HTTPS']=='on' && $pageURL.='s'
  13.     $pageURL.='://'
  14.     $pageURL.=$_SERVER['SERVER_PORT']!='80'?$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$_SERVER['REQUEST_URI']:$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; 
  15.     return $pageURL
  16. mod_rewrite('http://www.daimajiayuan.com/open-source-plug-in/592.html'); 
  17. echo '<pre>';print_r($_GET); 

打印结果为:

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

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

  1. <?php 
  2. function mod_rewrite($url='',$rootURL='http://www.daimajiayuan.com/'){ 
  3.     global $_GET
  4.     $url=empty($url)?cur_page_url():$url
  5.     $url=str_ireplace(array($rootURL,'.html'),'',$url); 
  6.     $url=explode('-',$url); 
  7.     $_GET=$url
  8.     return $_GET
  9. /*获取当前页面的URL(包括参数)*/ 
  10. function cur_page_url(){ 
  11.     $pageURL='http'
  12.     $_SERVER['HTTPS']=='on' && $pageURL.='s'
  13.     $pageURL.='://'
  14.     $pageURL.=$_SERVER['SERVER_PORT']!='80'?$_SERVER['SERVER_NAME'].':'.$_SERVER['SERVER_PORT'].$_SERVER['REQUEST_URI']:$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; 
  15.     return $pageURL
  16. mod_rewrite('http://www.daimajiayuan.com/article-23-592.html'); 
  17. echo '<pre>';print_r($_GET); 

打印结果为:

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

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

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

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

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

转载请注明:代码家园 » php如何用程序实现伪静态

也许你会喜欢和关注与本文内容高度相关的文章:

php实现伪静态

WordPress中用于更新伪静态规则的PHP代码实例讲解

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)