LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1004|回复: 4

怎么写一个截取指定位数的正则?

[复制链接]
发表于 2006-9-5 00:39:11 | 显示全部楼层 |阅读模式
想利用apache的rewrite来

http://abc.com/11001.html  =>http://abc.com/11/11001.html

把url里的11001.html map 到 物理目录下的11/11001.html

花了一整天,把动态网页全部转化成静态的了,但是都放到一个目录下的话太多了,效率不高。如果把服务器上的目录结构也放到网页里的话,目录结构不统一,会带来很多麻烦。花了一晚上也没搞定。头痛ing....
发表于 2006-9-5 03:27:29 | 显示全部楼层
\d 不可以么?你的正则怎么写的?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-5 12:51:24 | 显示全部楼层
不好意思,可能说的不是很清楚.我是想把生成的静态文件,每1000个放在一个 sub folder 里面. 比如说, 1001.html map 到 1/1001.html 下面. 12345.html map 到12/12345.html, 如此类似. ID.html, 其中ID是一个由4个到6个数字组成的数字串,取该数字串的前1-3位为sub folder 名,然后把该文件放在这个别sub folder 里面.

http://abc.com/11001.html =>http://abc.com/11/11001.html
http://abc.com/1234.html =>http://abc.com/1/1234.html
http://abc.com/654321.html =>http://abc.com/654/654321.html

或者说除了用mode_rewrite 以外还有其他的办法吗?
回复 支持 反对

使用道具 举报

发表于 2006-9-5 13:25:33 | 显示全部楼层
也就是把  ((\d+)\d\{3}).html 替换成 \2/\1.html  是吧?

我不知道 rewrite 怎么写,不过正则应该差不多这个样子。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-9-5 23:36:18 | 显示全部楼层
搞定了,哈哈

url.rewrite-once  = ("(.*)/(([0-9]+)[0-9]{3})(.*)" => "$1/$3/$2$4")
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表