Regex 无法编译正则表达式。Apache 2.4.18

Regex 无法编译正则表达式。Apache 2.4.18,regex,.htaccess,Regex,.htaccess,因此,我们的主机已将其服务器更新为最新版本的apache,并在站点上造成了各种各样的错误。apache错误日志中的主要错误如下,导致主网站上出现500个错误 无法编译正则表达式 RewriteRule ^video-management/([A-Za-z0-9_-\s\+]+)$ manage-videos.php?bizID=$1 [NC,L] RewriteRule ^video-management/([A-Za-z0-9_-\s\+]+)/delete/([A-Za-z0-9_-\s\+

因此,我们的主机已将其服务器更新为最新版本的apache,并在站点上造成了各种各样的错误。apache错误日志中的主要错误如下,导致主网站上出现500个错误

无法编译正则表达式

RewriteRule ^video-management/([A-Za-z0-9_-\s\+]+)$ manage-videos.php?bizID=$1 [NC,L]
RewriteRule ^video-management/([A-Za-z0-9_-\s\+]+)/delete/([A-Za-z0-9_-\s\+]+)$ manage-videos.php?bizID=$1&delImg=$2 [NC,L]
RewriteRule ^_shared/([A-Za-z0-9_-\s\+]+)/([A-Za-z0-9_-\s\+\.]+)/([A-Za-z0-9_-\s\+\.]+)$ _shared/$1/$2/$3 [NC,L]
RewriteRule ^plugins/([A-Za-z0-9_-\s\+]+)/([A-Za-z0-9_-\s\+\.]+)/([A-Za-z0-9_-\s\+\.]+)$ plugins/$1/$2/$3 [NC,L]
RewriteRule ^admin/([A-Za-z0-9_-\s\+]+)/([A-Za-z0-9_-\s\+\.]+)/([A-Za-z0-9_-\s\+\.]+)$ admin/$1/$2/$3 [NC,L]
RewriteRule ^pages/([A-Za-z0-9_-\s\+]+)/([A-Za-z0-9_-\s\+\.]+)/([A-Za-z0-9_-\s\+\.]+)$ pages/$1/$2/$3 [NC,L]
RewriteRule ^images/([A-Za-z0-9_-\s\+]+)/([A-Za-z0-9_-\s\+\.]+)/([A-Za-z0-9_-\s\+\.]+)$ images/$1/$2/$3 [NC,L]
我无法理解Apache更新后会发生什么变化,查看上面的正则表达式,似乎看不到任何会导致此问题的错误


当我把以上几行注释掉时,网站又正常运行了(大部分正常)。

我不太理解你的问题。但是您可以将早期版本的apache中的活动模块与当前版本的apache中的活动模块进行比较,可能是某些模块被禁用并且无法识别.htaccess

检查httpd.conf文件

另一种可能是.htaccess中的路径 尝试替换:

RewriteBase /


经过几天的抨击,我终于发现正则表达式中有一个错误

正确的结果应该是

 ([A-Za-z0-9_\-\s\+]+)

我错过了破折号前的一个\号。

您也应该指定您的原始版本,通常使用这些知名产品很容易找到描述您确切问题的迁移指南。@Aaron-我已经到处寻找这种类型的错误,似乎没有多少人会遇到这种错误。Baicaly我们的主机更新了Apache多年前的版本(不确定旧版本),但现在它的版本是2.4.18-更新后,我在Apache错误日志中看到错误“正则表达式无法编译”,网站上出现500个错误。如果我把上面的行注释掉,网站会加载,但由于上面的重写规则被注释掉,所以不能正常加载。我不知道,这一切对我来说都很好。您可以删除A-Z类,因为您使用NoCase标志替换,但这并不能解决问题hi@Gislef,我已经尝试将RewriteBase更改为网站路径,但没有成功使htaccess再次正常工作。至于httpd.conf,这是我无法检查的,因为我们只有服务器的特定部分。很高兴你找到了solution@Gislef谢谢-太糟糕了,其他人给了我不好的名声,并且否决了我最初的问题
 ([A-Za-z0-9_\-\s\+]+)