伪静态除了吃IIS连接数 和操作不慎带来的SEO降权,其它的满满是优点。
伪静态不同的web服务器不同的构架方式都会带来小问题,当然这些问题的发生大多数据都是因为伪静态的规则写得不够正规,有错误规则存在。
最近发现 ISAPI_Rewrite3_0089_Lite.msi这种安装版的伪静态容错特别高,就算一些书写错误的伪静态,最样能稳定运行。一旦要把这种伪静态网站迁移到 Rewrite.dll伪静态环境中,就会出现错误。
经过不断的尝试,主要的错误就在于伪静态目录 和变量顺序。
RewriteRule ^(.*)/index.html$ /index.asp
RewriteRule /about([0-9]+).html /about.asp\?id=$1
如,ISAPI_Rewrite3_0089_Lite.msi伪静态,只要首页目录前加了东西,从首页链接到其它同层页,就会自动拥有,不需要再加上^(.*) ,但移值到.dll的伪静态中,就得一个个都加上^(.*)。
ISAPI_Rewrite3_0089_Lite.msi伪静态中^(.*)目录不算变量,但在.dll的伪静态中,^(.*)就算是一个变量。
RewriteRule /about([0-9]+).html /about.asp\?id=$1 这个就得修改成:RewriteRule ^(.*)/about([0-9]+).html /about.asp\?id=$2 才能正常运行。应该^(.*)也是一个变量。