伪静态规则:RewriteRule /news-(\d+)-.html /news/index\.aspx\?page=$1我的想法是这样的 :一个分页列表,前10页,生成静态页面,第11页用伪静态这个伪静态规则该怎么写呢,就是page/ 后面该怎么写呢 大于 10 的正整数的正则表达式该怎么写呢希望各位老大按照这个格式发上来,谢谢了RewriteRule /news-(\d+)-.html /news/index\.aspx\?page=$1
伪静态规则:RewriteRule /news-(\d+)-.html /news/index\.aspx\?page=$1我的想法是这样的 :一个分页列表,前10页,生成静态页面,第11页用伪静态这个伪静态规则该怎么写呢,就是page/ 后面该怎么写呢 大于 10 的正整数的正则表达式该怎么写呢希望各位老大按照这个格式发上来,谢谢了RewriteRule /news-(\d+)-.html /news/index\.aspx\?page=$1
例如:第2页你说返回静态是 news-2.html
第12页你说返回伪静态 不还是 news-12.html 嘛。。
1.两位正整数,以1起始且大于10的: ^1[1-9]$
2.两位正整数,以2至9起始的:^[2-9]\d$
3.三位或更大的正整数 ^[1-9]\d{2,}$综合得出
^((1[1-9])|([2-9]\d)|([1-9]\d{2,}))$
如有错误或更简方式请指正
这个不行,小于等于10的照样可以访问aspx
这个根本找不到页面
这个满足大于10
首先你用的URL重写组件是什么?是微软的MSDNUrlRewriting还是ISAPI_Rewrite?
然后你的URL格式:/news-2.html,你只说到了大于10的页码重写为/news/index.aspx?page=数字,那么前10页呢?保持/news-2.html真实URL不变是吗?如果你的前10页不重写的话,那么ISAPI_Rewrite 3的重写规则如下:RewriteRule /news-(?!10\.html$)([\d]{2,})\.html /news/index\.aspx\?page=$1 [NC]
##注意如果想在.html加querystring参数就去掉(?!10\.html$)中的$符号如果前10页也要重写,你就再加一条规则专门对应前10页的:
RewriteRule /news-([\d]{1}|10)\.html 要重写的url [NC]
10页以后访问的是真实路径: /news/index.aspx\?page=$1
花了点时间测试了下,应该可以:
<Rewrite url="~/news_([1-9][0]?).htm" to="~/news_([1-9][0]?).htm"/>
<rewrite url="~/news_(\d+).htm" to="~/index.aspx?page=$1"/>
写2个规则,注意,这里1-10的必须放在前面,因为规则是放在前面先生效,所以,如果是new_(1-10).html访问的就是new_(1-10).html,如果大于10,在第一条规则找不到匹配,在往下找,刚好匹配第二条,访问aspx页面。
希望对楼主有帮助,大家帮看看我问题,急啊。http://topic.csdn.net/u/20120203/16/22fd4a20-48ab-4bc7-888d-99aa0ccbae43.html?seed=1450491244&r=77458733#r_77458733
改为:<Rewrite url="~/news_([1-9]|10).htm" to="~/news_([1-9]|10).htm"/>
37楼也是正解,只不过要注意1-10的规则在前,然后不包括0
改为:<Rewrite url="~/news_([1-9]|10).htm" to="~/news_([1-9]|10).htm"/>
37楼也是正解,只不过要注意1-10的规则在前,然后不包括0
整理一下:
RewriteRule /news-([1-9]|10)-.html /news-([1-9]|10)-.html
RewriteRule /news-(\d+)-.html /news/index\.aspx\?page=$1