表达式是这样写的
RewriteEngine On
RewriteRule ^(.*)/product/test_(/d+)/.shtml$ $1/product/test.php?sid=$2
然后一直以http://www.abc.com/product/test.php?sid=9000这个链接去测试,当初以为它会自动跳转为http://www.abc.com/product/test_9000.shtml,测试了很久都跳转不过去 以为是正则表达式写错了 改来改去都不行,后来百度了下:
RewriteRule Pattern Substitution [flags]
Pattern是一个作用于当前URL的perl兼容的正则表达式。"当前URL"是指该规则生效时刻的URL的值。它可能与被请求的URL截然不同,因为其他规则可能在此之前已经发生匹配并对它做了改动。
Substitution是当原始URL与Pattern相匹配时,用来替代(或替换)的字符串。
也就是说当用户以http://www.abc.com/product/test_9000.shtml来访问的时候,然后用^(.*)/product/test_(/d+)/.shtml$去匹配,如果匹配成功,就替换成$1/product/test.php?sid=$2去访问,当然在用户页面上显示的还是http://www.abc.com/product/test_9000.shtml,使用户认为访问的是静态网页。
请务必保留此出处http://xinying.blog.51cto.com/441770/234713
新闻热点
疑难解答