URL重寫我要實現的是這樣的:的http://example.com/year/month/day代替http://example.com?year=yyyy&month=mm&day=dd的年,月,
我希望在比賽都是數字它只僅重寫,當第一段(年)是4第二個分段月份在01和12之間(第d年的月份),最後一個分段(日期)在01 - 31(一個月中的天數)之間。
請我怎樣才能做到這一點
URL重寫我要實現的是這樣的:的http://example.com/year/month/day代替http://example.com?year=yyyy&month=mm&day=dd的年,月,
我希望在比賽都是數字它只僅重寫,當第一段(年)是4第二個分段月份在01和12之間(第d年的月份),最後一個分段(日期)在01 - 31(一個月中的天數)之間。
請我怎樣才能做到這一點
我想你應該檢查月和日數在腳本中。但這是正則表達式。
已更新以匹配單個數字的日期或月份以及可選的尾部斜線。
RewriteRule ^(\d{4})/(0?[1-9]|1[0-2])/(0?[1-9]|[12][0-9]|3[01])/?$ ?y=$1&m=$2&d=$3
只適用於使用可選尾部斜槓的年份和月份。
RewriteRule ^(\d{4})/(0?[1-9]|1[0-2])/?$ ?y=$1&m=$2
我能想到的最好的是這樣的:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(\d{4})/(0[1-9]|10|11|12)/(0[1-9]|[12][0-9]|3[01])/?$ index.php?y=$1&m=$2&d=$3 [L]
非常感謝,我注意到如果01寫成1,它不起作用,請問我該如何解決它;此外,如果我只想與年和月一起工作,請刪除'(0 [1-9] | 10 | 11 | 12)/'? – 2011-05-18 08:40:46
您*應*檢查腳本中的月份和日期編號。 – 2011-05-18 08:05:03
@Teneff否,後兩位必須是「EOL」。 – 2011-05-18 08:19:24
它的工作很好,只是你可能不得不考慮關於一個可選的正斜槓在結尾:) – Teneff 2011-05-18 08:24:07