利用apache伪静态规则重写lighttpd伪静态规则的方法
lighttpd伪静态规则的写法之前的文章已经有大体介绍,Lighttpd服务器URL重写与伪静态配置,但是还有是朋友说看不懂,不会写。
废话不多说了,欢迎您收看友声网卡卡北的原创“软文”,今天就用白话方式跟大家说一下利用apache伪静态规则重写lighttpd伪静态规则的方法。
上一篇文章Lighttpd服务器URL重写与伪静态配置中说道:
lighttpd 1.4.24版以后,规则用url.rewrite-if-not-file来保证,
配置文件的示例为:
url.rewrite=( "^/$" =>"/server-status" )
意思既为:url.rewrite=( "现在展现的" =>"原来展现的" )
那我们以文章:Z-Blog php版在apache下的伪静态规则完整版 中zb在apache的伪静态规则为例
RewriteRule read/(.*).html index.php?id=$1
再以文章:Z-Blog php版在lighttpd下的伪静态规则完整版 中zb在lighttpd的伪静态规则对比
与以上对应的lighttpd中的规则如下:
"^(.*)/read/(.*).html$"=>"$1/index.php?id=$1",
实际上就是把apache中
RewriteRule read/(.*).html
转成lighttpd的:
"^(.*)/read/(.*).html$"
把 apache中:
index.php?id=$1
转成lighttpd的:(千万别忘记末尾的英文半脚逗号!)
"$1/index.php?id=$1",
转成lighttpd规则后,中间加英文半角的=号和>号,既:=>
在转了很多lighttpd规则后发现lighttpd几乎可以小改照搬apache的规则,这就大大降低了转换难度。
最后补充:
1、多规则写入方式:
url.rewrite=( "^/$" =>"/server-status" )
可以写成:
url.rewrite=(
"^/$" =>"/server-status"
)
或:
url.rewrite=(
"xxx1" =>"xxxx1",
"xxx2" =>"xxxx2"
)
甚至:(注意末尾标点)
url.rewrite=(
"xxx1" =>"xxxx1",
"xxx2" =>"xxxx2",
)
但是建议不要写成:
url.rewrite=(
"xxx1" =>"xxxx1",
"xxx2" =>"xxxx2",
)
2、不可以有重复规则,既不可以有重复if
上面讲到lighttpd 1.4.24版以后,规则用url.rewrite-if-not-file来保证
假如您的规则最后如下:
url.rewrite = (
#zblog规则
"^(.*)/read/(.*).html$"=>"$1/index.php?id=$1",
#phpwind规则
"^(.*)/read/(.*).html$" => "$1/read.php?tid=$2&page=$3&fpage=$4"
)
这样是不可以的
因为重复了if
"^(.*)/read/(.*).html$"
所以会导致服务器无法重启
我想这个在nginx上也会如此吧。
从这方面上apache完胜,至于如何解决我暂时还没找到方法。但不要灰心,以后文章还会讲lighttpd可以完胜apache的防盗链功能,可以让您对lighttp刮目相看~
好了文章就到此,希望本文对使用vps且安装了lighttpd的用户略有帮助。
传送门:PW历史安装包及升级程序