2016-03-05 76 views
-1

所以我們的主機已經更新他們的服務器到最新版本的Apache,並導致網站上的各種錯誤。主要的是在apache錯誤日誌中出現以下內容,導致主網站上出現500錯誤。正則表達式無法編譯。 Apache 2.4.18

無法編譯正則表達式。

RewriteRule ^video-management/([A-Za-z0-9_-\s\+]+)$ manage-videos.php?bizID=$1 [NC,L] 
RewriteRule ^video-management/([A-Za-z0-9_-\s\+]+)/delete/([A-Za-z0-9_-\s\+]+)$ manage-videos.php?bizID=$1&delImg=$2 [NC,L] 
RewriteRule ^_shared/([A-Za-z0-9_-\s\+]+)/([A-Za-z0-9_-\s\+\.]+)/([A-Za-z0-9_-\s\+\.]+)$ _shared/$1/$2/$3 [NC,L] 
RewriteRule ^plugins/([A-Za-z0-9_-\s\+]+)/([A-Za-z0-9_-\s\+\.]+)/([A-Za-z0-9_-\s\+\.]+)$ plugins/$1/$2/$3 [NC,L] 
RewriteRule ^admin/([A-Za-z0-9_-\s\+]+)/([A-Za-z0-9_-\s\+\.]+)/([A-Za-z0-9_-\s\+\.]+)$ admin/$1/$2/$3 [NC,L] 
RewriteRule ^pages/([A-Za-z0-9_-\s\+]+)/([A-Za-z0-9_-\s\+\.]+)/([A-Za-z0-9_-\s\+\.]+)$ pages/$1/$2/$3 [NC,L] 
RewriteRule ^images/([A-Za-z0-9_-\s\+]+)/([A-Za-z0-9_-\s\+\.]+)/([A-Za-z0-9_-\s\+\.]+)$ images/$1/$2/$3 [NC,L] 

我不明白怎麼都應該有一個更新到Apache改變,並期待在上述正則表達式,似乎也看不出這將導致此問題的任何錯誤。

當我註釋掉上述內容時,網站再次運行(主要是)。

+0

您也應該指定您的原始版本,通常使用這些知名產品很容易找到描述您確切問題的遷移指南。 – Aaron

+0

@Aaron - 我已經看過這種類型的錯誤,似乎沒有多少人得到這個錯誤。幸運的是,我們的主機更新了Apache從多年前的版本(不確定舊版本),但現在它的版本2.4.18 - 更新後,我收到錯誤「正則表達式無法編譯」 Apache錯誤日誌和網站的500錯誤。 如果我註釋掉上面的行,網站會加載,但由於上面的重寫規則被註釋掉,所以加載不正確。 –

+0

我不知道,這一切對我都很好。您可以刪除AZ類,因爲您用NoCase標誌替換,但這不會解決問題 – Aaron

回答

0

幾天後撲我的頭,我終於想通了,在那裏是一個錯誤正則表達式。

正確的結果應該是

([A-Za-z0-9_\-\s\+]+) 

我錯過了衝刺前的\。

+0

這很簡單。很高興你找到解決方案 – Gislef

+0

@Gislef謝謝 - 太糟糕了,其他人給了我不好的代表,並投了我的第一個問題 –

0

我不太明白你的問題。但是,您可以將早期版本的Apache中的活動模塊與當前版本的Apache進行比較,可能某些模塊已禁用,並且不會識別.htaccess。

檢查你的httpd.conf文件。

另一種可能性是在.htaccess 嘗試更換路徑:

RewriteBase/

RewriteBase /folderYourHosting/example.com/ 
+0

Hi @Gislef,我試圖將RewriteBase更改爲網站路徑,但沒有成功讓htaccess再次正常工作。至於httpd.conf,這是我無法檢查的,因爲我們只有服務器的某個部分。 –