最新消息:伪静态技术大全博客开通啦!再也不为伪静态东奔西走!更多问题可以反映给博主:野狼,QQ1615241386 QQ交流群:112696646

《7天学会伪静态》 第四节:写一个简单的伪静态规则

伪静态教程 野狼 1505浏览 0评论

时隔两年,还是想把这个伪静态博客打理起来。做了这么多年的技术,有时候也是身不由己,想着更新一些教程给大家的,但是总是因为这样那样的事情忙碌着。这两年开发了永易搜建站系统,又开发了一些混合开发的APP,对于服务器和PHP的相关技术更进一步的了解,也对伪静态有了更进一步理解。以后想把伪静态博客重新做起来,就继续更新《7天学会伪静态》吧!

闲话不多说,今天我们就来点实在的,直接来写一个伪静态规则。上一节我们知道伪静态规则是有很多种,大致可以分为:httpd.ini、.htaccess、httpd.conf、web.config 四种格式。

我们出一个题目,然后写4种格式的伪静态规则,大家可以先感受一下:

题目:http://www.xxx.org/good-10.html 对应  http://www.xxx.org/good.php?id=10,做一个伪静态规则

一、httpd.ini格式的

[ISAPI_Rewrite]

CacheClockRate 3600

RepeatLimit 32

# 前边可以忽略,是关于缓存之类的定义

#首发于http://www.weijingtai.org/ 伪静态博客 ,转载请注明

RewriteRule ^(.*)/good-(.+)\.html$ $1/good\.php\?id=$2

二、.htaccess

RewriteEngine on

<IfModule mod_rewrite.c>

# 前边可以忽略,是关于缓存之类的定义

#首发于http://www.weijingtai.org/ 伪静态博客 ,转载请注明

RewriteRule ^(.*)/good-(.*)\.html$ $1/good\.php\?id=$2

</IfModule>

三、httpd.conf

这个要分成两种情况写:一种是西部数码的绿色版本的伪静态组件,几乎和.htaccess的文件一样,而且还可以引用httpd.conf之后不在这个里边写,而是在网站根目录里写,这里就不介绍了。

另外一种情况,就是Nginx的服务器,规则就不一样,这里写一下:

location / {

rewrite ^([^\.]*)/good-(.+)\.html$ $1/good.php?id=$2 last;

}

这里边重要的就是最后那个last,其他方面的可以参照我写的这个,其实跟其他的http.ini和.htaccess差不多。

四、web.config

<?xml version=”1.0″ encoding=”UTF-8″?>

<configuration>

<system.webServer>

<rewrite>

<rules>

<rule name=”weijingtai”>

<match url=”^(.*/)*good-(.+).html\?*(.*)$” />

<action type=”Rewrite” url=”{R:1}/good.php\?id={R:2}” />

</rule>

</rules>

</rewrite>

</system.webServer>

</configuration>

要不怎么说微软牛呢,就是要跟别人不一样,每次改变就是很大。从以前的IIS6用的伪静态规则,到IIS7.5的,完全来了个颠覆,给我们留下很大的技术隐患,大坑啊!

最后总结一下:

1、伪静态其实并不难,比葫芦画瓢就行。各种规则的大致原理都是一样的:用正则表达式进行页面一对一匹配。只是不同的规则写法稍微不懂而已,比如Nginx后边加个last,IIS7,5的就是XML格式,不是一行一个规则。

2、伪静态规则可以有很多变形,所以就看着比较复杂,吃透他的基本思路,就可以摸索着修改和测试了。高手也要测试才能知道写的是否真正符合你的服务器。

3、伪静态规则与服务器环境关系比较大,这个以前说过,但依然要提醒各位先搞明白自己的服务器伪静态组件是什么再下手。

7天学会伪静态系列教程

7天学会伪静态

 

 

转载请注明:伪静态技术博客 » 《7天学会伪静态》 第四节:写一个简单的伪静态规则

您必须 登录 才能发表评论!

网友最新评论 (1)

  1. 欢迎大家留言!
    野狼1年前 (2017-06-27)