日期:2014-05-18  浏览次数:20447 次

奉100分谢高手,表达敬意,正则表达式大于10

伪静态规则: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 嘛。。
------解决方案--------------------
大于 10 的正整数的正则表达式分成
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页面不可以么。。?
------解决方案--------------------
你写一个js函数做判断吧.这样方便些,直接一点
------解决方案--------------------
标记一下,^((1[1-9])|([2-9]\d)|([1-9]\d{2,}))$貌似负数也可以的哇,不会,学习中、。。
------解决方案--------------------
怎么写?????飘过!
------解决方案--------------------
!!!!!!!!!!
------解决方案--------------------

------解决方案--------------------
帮顶!
------解决方案--------------------
不熟悉正则,期待楼下
------解决方案--------------------
if else判断不行么?
------解决方案--------------------
/news-([1-9]\d+)-.html
如此?
------解决方案--------------------
/news-(1[1-9]|[2-9]\d+)-.html
这个满足大于10
------解决方案--------------------
探讨
/news-(1[1-9]|[2-9]\d+)-.html
这个满足大于10

------解决方案--------------------
大于10 的正则表达式
(^1[1-9]$)|(^[2-9][0-9]$)|(^1[0-9]{2,})
------解决方案--------------------
大于10 的正则表达式
(^1[1-9]$)|(^[2-9][0-9]$)|(^1[0-9]{2,})
改一下
(^1[1-9]$)|(^[2-9][0-9]$)|(^[1-9]{2,})
------解决方案--------------------
这样才正确
(^1[1-9]$)|(^[2-9][0-9]$)|(^[1-9][0-9]\d+)
------解决方案--------------------
楼主要善于提问,把问题描述清楚。。
首先你用的URL重写组件是什么?是微软的MSDNUrlRewriting还是ISAPI_Rewrite?
然后你的URL格式:/news-2.html,你只说到了大于10的页码重写为/news/index.aspx?page=数字,那么前10页呢?保持/news-2.html真实URL不变是吗?

如果你的前10页不重写的话,那么ISAPI_Rewrite 3的重写规则如下:
HTML code

RewriteRule /news-(?!10\.html$)([\d]{2,})\.html /news/index\.aspx\?page=$1  [NC]
##注意如果想在.html加querystring参数就去掉(?!10\.html$)中的$符号

------解决方案--------------------
其实说简单点就是:浏览器看到的路径都一样news-(\d+)-.html ,前10页访问的是真实的html.
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页面。