浅谈.htaccess的伪静态应用

昨天介绍了“.htaccess”的自定义错误页面的方法

现在再讲讲“.htaccess”在伪静态页面中的应用

平常去的一些动态访问出来都是后面有长串参数

有的动态网站看起来确是静态的Html地址(比如1Space的论坛)

这就是伪静态的小狗,实现伪静态需要服务器支持 Rewrite 函数。

先来看看EMLOG自带的“.htaccess”文件代码

1
2
3
4
5
6
<IfModule mod_rewrite.c>
RewriteEngine on
#RewriteBase /
RewriteRule ^(post|record|sort|author|page)-([0-9]+)\.html$ index.php?$1=$2
RewriteRule ^tag-(.+)\.html$ index.php?tag=$1
</IfModule>

第一行是载入REWRITE模块,第二行是开启Rewrite引擎

第三到第五行是Rewrite的重写规则,最后是与第一行对应的结束标记

关键规则是RewriteRule后面的算法(即第四第五行)

比如我Blog:

关闭RewriteRule的页面地址是 http://candura.i8i8.net/?post=23

打开RewriteRule之后的效果是 http://candura.i8i8.net/post-23.html

单独来分析关键代码

1
RewriteRule ^(post|record|sort|author|page)-([0-9]+)\.html$ index.php?$1=$2

后面的两个$1和$2是表示原本动态地址时后面的两个变量,分别对应到前面的两个括号内的内容

比如本来是index.php?post=3被静态之后变成post-3.html。

前面的括号相当于是定义变量的值,像$1的值为(post|record|sort|author|page)、$2对应的([0-9]+)说明$2为数字型,还有下面那个伪静态TAG的是(.+)应该就是字符型了(不作处理,原来是什么名字就是什么名字)

虽说我分析的是粗略了点,但是这样稍微分析一下,大家应该都知道要怎样才能写出自己的伪静态规则了。

文章目录
|