2010-04-23 65 views
1

我一直在使用現有的網站,公司一直在運行,直到我完成開發新網站。Apache複雜正則表達式崩潰500錯誤

我被要求添加一些額外的功能來預訂頁面,將自動設置一個基於傳遞參數的預訂按鈕。

現有工作正則表達式如下:

RewriteRule ^.+-(\d+)\.accommodation$ property_detail.php?id=$1 

與該網址,如下所示工作正常,並通過URL。

this-is-the-property-name.1234.accomodation 

但是作爲一個快速毒刃,我想做到以下幾點:

this-is-the-property-name.1234.accomodation?override=true&start_date=2010-05-14&numbernights=2&sleeps=10&price=1012 

我想出了這是正則表達式:

RewriteRule ^.+-(\d+)\.accommodation\?override=(\w+)&start_date=(19|20)[0-9]{2}[- /.](0[1-9]|1[012])[- /.](0[1-9]|[12][0-9]|3[01])&numbernights=(\d+)&sleeps=(\d+)&price=(\d+)$ property_detail.php?id=$1&override=$2&start_date=$3-$4-$5&numbernights=$6&sleeps=$7&price=$8 

的正則表達式是通過如在RegexBuddy中有效 - 但它會在服務器上造成500錯誤。任何人都可以幫我解開這個問題嗎?

+0

500指的是「有些事情不對看看錯誤日誌!」。錯誤日誌說什麼? – Quentin 2010-04-23 13:50:07

回答

1

你可以只用第一重寫和使用[QSA]標誌追加查詢字符串:

RewriteRule ^.+-(\d+)\.accommodation$ property_detail.php?id=$1 [QSA]

+0

絕妙的答案!似乎馬上工作,我現在可以看到變數。我會投票,但我沒有足夠的重新排序:( – 2010-04-23 13:53:01

+0

很高興你很高興 - 接受它,如果你滿意的答案。謝謝! – 2010-04-23 14:51:14