RewriteRule无法编译正则表达式

时间:2009-10-07 14:09:25

标签: regex .htaccess mod-rewrite

我以前的服务器工作正常..今天我更换了新服务器并且得到了RewriteRule无法在我的htaccess上编译正则表达式。

如何解决此问题。

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

让我知道:)。

1 个答案:

答案 0 :(得分: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]