大括号转义问题:
Nginx配置文件中,大括号{}默认用于配置块(如server{}),直接用在正则表达式中会被误解析。
解决方案:用单引号包裹正则表达式(推荐),或转义大括号(但转义可能不生效,不推荐)。
直接写 : (×××××)错错错错错错错
rewrite ^/chengji/nian/(\d{4}).html /chengji/nian.php?nian=$1 last;
因为 {} 是用于配置块,会无解析,报错,不符合规则。
正确写法:(用单引号包住 含有 花括号 的正则表达式 )对对对对
rewrite '^/chengji/nian/(\d{4}).html' /chengji/nian.php?nian=$1 last;
# 或(不推荐,可能因转义不彻底失效)
rewrite ^/chengji/nian/(\d\{4\}).html$ /chengji/nian.php?nian=$1 last;
#############################################################
总结::::::::::::::::::::::::::
#############################################################
没有花括号 (如 {1}这样的量词 )可以
rewrite ^/chengji/nian/(\d+).html$ /chengji/nian.php?nian=$1 last;
正则表达有花括号 (量词) 可以单引号包围
rewrite '^/chengji/nian/(\d{4}).html' /chengji/nian.php?nian=$1 last;
