2013-08-16 47 views
1

我們正試圖將我們的.htaccess文件遷移到Apache 2.2.25。由於正則表達式的改變,我們的.htaccess文件與舊版本的Apache 2.2.25版本不兼容。Apache 2.2 .htaccess文件遷移 - 正則表達式錯誤

我已經做了一些研究,但遺憾的是我無法弄清楚需要改變什麼。

我們在Apache錯誤日誌中收到以下錯誤。

.htaccess:正則表達式無法編譯。

這是我們的.htaccess文件。這些「RedirectMatch 301」我認爲是造成問題的原因。

RedirectMatch 301 ^/test/?$ http://www.domain.com/ 
RedirectMatch 301 ^/test/products/?$ http://www.domain.com/products/ 
RedirectMatch 301 ^/test/products/about/?$ http://www.domain.com/products/about/ 

下似乎做工精細,並在Apache的錯誤日誌不會產生錯誤。

#Wordpress configuration and force www 
<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} ^domain\.de$ [NC] 
RewriteRule ^(.*)$ http://www.domain.de/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^domain\.co\.in$ [NC] 
RewriteRule ^(.*)$ http://www.domain.co.in/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^domain\.co\.uk$ [NC] 
RewriteRule ^(.*)$ http://www.domain.co.uk/$1 [L,R=301] 

RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php [L] 
</IfModule> 
+3

這些都是很好,你確定它不是在一個容器,如''? –

回答

0

而不是使用這個的:

RedirectMatch 301 ^/test/products/?$ http://www.domain.com/products/ 

我們用這個來代替。這並沒有產生錯誤。

RedirectMatch 301 ^/test/products/(.*)$ http://www.domain.com/products/$1