RewriteRule无法编译正则表达式

wow*_*wow 3 regex .htaccess mod-rewrite

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

如何修复此行.

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

让我知道 :)

Gum*_*mbo 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]
Run Code Online (Sandbox Code Playgroud)