2011-05-04 53 views
0

RewriteRule ^([^-]*)-([^-]*)-((foot|basket)(ball))-schedule(/)?$ /yearschedule.php?sport=$3&school=$1&year=$2&schedule=true [NC,L]是當前的代碼。正則表達式重寫在連字符處停止,但允許在字符串中使用連字符(.htaccess)

我瘋狂並沒有意識到籃球賽的時間表還包括一個連字符。我將如何更改此代碼以允許重寫正確識別籃球網頁年?

不正常工作

http://domain.com/michigan-1999-00-basketball-schedule 

正常工作

http://domain.com/michigan-1999-football-schedule 

的問題是,因爲在服務器的眼中,它停止了籃球多年重寫無法識別的格式在1999- |這裏| 00而不是通過。我真的不知道我應該用什麼代碼來解決這個問題。

(正則表達式新手)

+0

'(foot | basket | 00-basket)' – Prix 2011-05-04 04:05:02

+0

00可以是任意兩位數的整數 – 2011-05-04 04:06:25

+1

'\ d + -basket'會做,但如果00代表一個月,並且您需要它或想排除它應該是這樣的:'^([^ - ] *) - ([^ - ] *)( - \ d + | - )((foot | basket)(ball)) - schedule(/)?'' – Prix 2011-05-04 04:07:43

回答

1

試試這個行:

RewriteRule ^([^-]*)-([^-]*)-((foot|(?:[^-]*-)?basket)(ball))-schedule/?$ /yearschedule.php?sport=$3&school=$1&year=$2&schedule=true [NC,L] 

它將匹配下列:

  • http://domain.com/michigan-1999-00-basketball-schedule
  • http://domain.com/michigan-1999-basketball-schedule
  • http://domain.com/michigan-1999-football-schedule
相關問題