PHP实现URL静态化

再有一种就是伪静态方式,即用户和搜索引擎看到的是.html后缀的静态页面,但实际上它还是动态程序,只不过是通过某种方式进行了伪装。

这种方式也有两种实现方式:

第一种是通过web服务器,进行url rewrite实现链接的静态化,下面以apache为例来说明一下其实现方式。对于有服务器配置权限的用户,推荐使用apache的mod_rewrite模块,这里假设已经安装好mod_rewrite模块。打开apache的配置文件,找到相应主机的部分,添加以下代码:

 代码如下 复制代码
rewriteengine on
rewriterule ^/abc/([a-z]+)/([0-9]+).html$ /abc.php?action=$1&id=$2

然后在shell里执行service httpd reload,让apache重新载入配置就好了。

但对于我们大多数人来讲,我们购买的只是空间,根本没有权限去修改apache的配置文件,那就没有办法了吗?不,当然有办法,首先我们进入到我们的空间的根目录下(如public_html),然后建立一个文件名为.htaccess的文件。这个文件内容基本如下:

 代码如下 复制代码
rewriteengine on
rewritebase /
rewriterule ^post/([0-9]+).htm read.php?1
rewriterule ^post/([0-9]+)_([0-9]+).htm read.php?1&page=2
rewriterule ^post/([0-9]+)_([0-9]+)_([0-9]+).htm read.php?1&page=2&=3

 

php程序写法

 代码如下 复制代码

function  mod_rewrite(){
         if ( isset ( $_server [ ’ path_info ’ ])){
                 $url   =   substr ( $_server [ ’ path_info ’ ] , 1 );
                 $url   =   explode ( ’ / ’ , $url );
                 foreach  ( $url   as   $key   => $value ){
                         if ( $key % 2 != 1 ){
                                 if ( $value != ’’ ) $_get [ $value ] = $url [ $key + 1 ];
                                 $querystring [] = $value . ’ = ’ . $url [ $key + 1 ];
                        }
                }
                 $_server [ ’ query_string ’ ] = implode ( " & " , $querystring );
    $_server [ ’ php_self ’ ] = substr ( $_server [ ’ php_self ’ ]

 , 0 , strpos ( $_server [ ’ php_self ’ ] , ’ .php ’ ) + 4 );
                 $_server [ ’ request_uri ’ ] = $_server [ ’ php_self ’ ]

. ’ ? ’ . $_server [ ’ query_string ’ ];
        }
}

时间: 2024-10-09 06:28:43

PHP实现URL静态化的相关文章

SEO优化知识之URL静态化技术

虽然很多站长做SEO这行也很久了,但是还有很多人不知道什么是URL静态化,为什么要做URL静态化以及如何来做好URL静态化.今天小编就抽空写一篇关于URL静态化的知识与广大站长们分享! 首先我们要讲的是为什么要做URL静态化 大家知道现在大部分的网站都是采用的数据库驱动的,页面是一些开源程序生成的,而不是一个个完全由站长纯手工编辑的静态HTML文件.当我们的用户来访问网站的时候,网站程序自动根据URL里面所提供的参数来调用数据库里面的数据,从而生成网站的内容.说到这里大家已经很明了了吧,网站的U

zblog php版本实现URL静态化(伪静态)方法

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 网站的URL实现静态化虽然不是必要的,但是却是可以给你网站加分的,首先你自己和用户看着也舒服,不用再看那么多乱七八糟的符号了,其次搜索引擎抓取起来来方便,所以,如果能够实现URL静态化就尽量实现,利肯定大于弊. zblog的php版本提供了非常简单的URL静态化方法,准确的说应该是伪静态,因为它并不是真的生成了静态化的文件,只是让你看着网址是

discuz URL 静态化

discuz URL 静态化, discuz 静态化 ,discuz论坛静态化以及discuz 静态化设置 等下面我们一一列出静态化方法. 一.Apache Web Server(独立主机用户) 首先确定您使用的 Apache 版本,还有是否加载了 mod_rewrite 模块. Apache 1.x 的用户请检查 conf/httpd.conf 中是否存在如下两段代码:   LoadModule rewrite_module     libexec/mod_rewrite.so AddModu

Discuz! X2.5在blueshost的安装及url静态化设置技巧

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 本人一直用的blushost,最近想做一个论坛.就下了一个Discuz! X2.5版本源码.现已经成功搭设,并调试成功.Discuz! X2.5各项功能均能实现.现将一些安装技巧分享给大家: 1.下载Discuz! X2.5源码压缩包.然后在本地解压.解压后有三个文件夹,readme upload 和utility. 2.我们打开upload

WordPress中URL静态化设置处理方式

永久链接设置原则: 一.固定链接不使用日期 固定链接中使用日期会造成以下两方面的影响:一是影响搜索引擎蜘蛛的爬行,而是如果对文章进行修改日期重新发布就会导致反向链接,PR等消失. 二.尽量不使用分类 我们通常都喜欢将文章的分类加入到链接中,这样事实上存在一定的缺陷,一是如果文章属于多个分类的话那么就容易造成有多个链接地址,从而导致内容重复,二是,容易造成关键词的堆砌. 三.链接不宜过深 经常看到很多wordpress 朋友的固定链接是年/月/日/分类名/文章名.但是这种过于深的固定链接对搜索引擎

动态URL静态化

动态URL静态化的主要目的,其一是搜索引擎优化(SEO),其二是面向用户友好.动态URL静态化是把一个动态地址转化成一个静态地址.其实,这个静态地址的内容还是从动态地址来的,只是看起来,类似一个静态地址.例如,本站页面   http://www.xxx.cn/blog/read.php/416.htm 其真实地址是 http://www.xxx.cn/blog/read.php?416 采用一定的技术,把第一个地址指向第二个地址,也就实现了动态URL静态化的目的. 如 果进一步做到搜索引擎优化(

Discuz论坛URL静态化规则urlrewrite

apache%CE%B1%BE%B2%CC%AC/" target="_blank">apache伪静态规则  代码如下 复制代码 # 将 RewriteEngine 模式打开  RewriteEngine On    # 修改以下语句中的 /bbs 为你的论坛目录地址,如果程序放在根目录中,请将 /bbs 修改为 /  RewriteBase /bbs    # Rewrite 系统规则请勿修改  RewriteCond %{QUERY_STRING} ^(.*)$ 

wordpress博客category page 404 错误解决办法 (url静态化)

假期无事,又重新将自己的网站(第6小站)上线,放弃了原来的dokuwiki(优点:部署简单,无需数据库支持,ui简洁;缺点:文章管理逻辑奇特,需要手写markdown),然后自豪的采用wordpress,搞定主题,一阵改头换面之后,发现了一些美中不足的东西---丑陋的url,贴几个大家感受下: sixther.me/?p=85             #特定文章的url,根据post_id查询 sixther.me/?m=201512         #查看特定日期的文章,根据date stri

dede全站URL静态化改造[070414更正]_php技巧

1.将include复制到网站中的include目录. 2.修改数据库 将所有文档设置为"仅动态",可以进入数据库管理中,执行下面命令: update dede_archives set ismake=-1 并将ismake的默认值设置为 -1即动态. 将所有栏目设置为"使用动态页",可以进入数据库管理中,执行下面命令: update dede_arctype set isdefault=-1 并将isdefault的默认值设置为 -1即动态. 3.加入服务器重写规