2009-10-07 76 views
3

我以前的服務器工作正常..今天,我改變了新的服務器,並獲得RewriteRule無法編譯我的htaccess正則表達式。RewriteRule無法編譯正則表達式

如何解決此問題。

RewriteRule ^category/([0-9]+)(?:/([^/]+)(?:/([^/]+))?)(?:/([^/]+)(?:/([^/]+))?)?/$ ./category.php?pid=$1&catname=$2&page=$3 [L] 

讓我知道:)

回答

6

您可能正在使用不同的Apache的版本有不同的正則表達式引擎。自1.3以來的Apache版本使用POSIX ERE,而自2.0以來的版本使用PCRE。並且只有PCRE支持非捕獲組(?:expr)

因此,嘗試一種模式,沒有他們:

RewriteRule ^category/([0-9]+)(/([^/]+)(/([^/]+))?)(/([^/]+)(/([^/]+))?)?/$ ./category.php?pid=$1&catname=$3&page=$5 [L] 
+0

哇!感謝秋波。 – wow 2009-10-07 14:24:10