2016-10-04 85 views
-1

我正在使用mod_rewrite。我的規則的一部分是允許的天,範圍從1到31 ... 明顯的規則將是:如何在mod_rewrite中創建幾個月和幾天的規則

(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31) 

這同樣適用於範圍從1到12

(1|2|3|4|5|6|7|8|9|10|11|12) 

總體月,我的規則看起來像

RewriteRule ^gallery/image/date(?:/(1|2|3|4|5|6|7|8|9|10|11|12))?(?:/(1|2|3|4|5|6|7|8|9|10|11|12|13|14|15|16|17|18|19|20|21|22|23|24|25|26|27|28|29|30|31))?/?$ gallery/timeline.php?month=$1&day=$2 [L,QSA] 

正如你所看到的,規則是醜陋的!我相信在這裏有一個更好看的規則。 我用下面嘗試了幾個月

([0-9]{1,2}) 

但是,一個或兩個數字(0〜99)相匹配。我需要一個規則,匹配1到12個月和1到31個天?

我如何創建這兩個規則,幾個月和幾天?

回答

1

月分:

[1-9]|1[0-2] 

,日子:

[1-9]|[12][0-9]|3[01] 

但是,這將允許像2/304/31這是不存在的實用性日期!

RewriteRule ^gallery/image/date(?:/([1-9]|1[0-2]))?(?:/([1-9]|[12][0-9]|3[01]))?/?$ gallery/timeline.php?month=$1&day=$2 [L,QSA] 
相關問題