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

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

伪静态教程 野狼 307浏览 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天学会伪静态系列教程
 

发表评论
请遵守网络文明公约,理性发言
访客头像

还没有人来评论,快来抢个沙发吧!