找回密码
 注册

Apache httpd require expr Syntax error

php 发表于 2018/6/17 02:20 | 显示全部楼层 |阅读模式
AH00526: Syntax error on line 276 of httpd.conf: Cannot parse expression in require line: syntax error, unexpected T_ID, expecting T_REGEX or T_REGEX_I

AH00526: Syntax error on line 276 of httpd.conf: Cannot parse expression in require line: syntax error, unexpected T_STR_BEGIN, expecting T_REGEX or T_REGEX_I

Require expr "%{HTTP_HOST} =~ wuxiancheng\.cn"
Require expr "%{HTTP_HOST} =~ 'wuxiancheng\.cn'"

出错原因,正则表达式语法错误。

和RewriteCond中的正则表达式语法不同,expr表达式如果需要使用正则表达式,必须使用正则表一对斜杠(/)作为正则表达式的定界符,如果需要使用/以外的符号作为定界符符,需要在第一个定界符前加一个英文字母m.

还可以在第二个定界符后面加一个英文字母i表示正则表达式不区分大小写。

还需要注意一点,在httpd 2.4.16以前版本中,Require expr后面的表达式不能包含在一对引号中,否则也会报错。

以Require expr为例,正确的正则表达式示例

Require expr "%{HTTP_HOST} =~ /wuxiancheng\.cn/"
Require expr "%{HTTP_HOST} =~ /wuxiancheng\.cn/i"

Require expr "%{HTTP_HOST} =~ m%wuxiancheng\.cn%"Require expr "%{HTTP_HOST} =~ m%wuxiancheng\.cn%i"

错误的Apache expr表达式示例

Require expr "%{HTTP_HOST} =~ wuxiancheng\.cn"
Require expr "%{HTTP_HOST} =~ 'wuxiancheng\.cn'"

手机版|轻松E站

轻松E站

快速回复 返回顶部 返回列表