我以前的服务器工作正常..今天我更换了新服务器并且得到了RewriteRule无法在我的htaccess上编译正则表达式。
如何解决此问题。
RewriteRule ^category/([0-9]+)(?:/([^/]+)(?:/([^/]+))?)(?:/([^/]+)(?:/([^/]+))?)?/$ ./category.php?pid=$1&catname=$2&page=$3 [L]
让我知道:)。
答案 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]