MENU

记录一下Nginx正则遇到的坑

February 15, 2023 • 已被 285 位童鞋围观过 • 新手笔记

今天在写nginx规则的时候 遇到一个坑,折腾了很久才搞定。记录一下。
起初是我想匹配两个字符,且可带/或者不带/ 正则如下

location ~ ^/([a-zA-Z]{2})(\/)?$ {
    rewrite ^ /plus/home.php?language=$1 last;
}

正常情况下 这个代码是可以通过的,我也是测试了很久 都没有问题的,结果添加到nginx上就验证不通过,奇了怪。于是开始各种百度google查询,依旧毫无头绪。无奈之下,想到nginx转到apache 然后再通过工具转回来试试。
转为apache的规则如下

RewriteRule ^/([a-zA-Z]{2})(/)?$ /plus/home.php?language=$1 [L]

通过 https://winginx.com/en/htaccess 开始转换得到了下面的代码

rewrite "^/([a-zA-Z]{2})(/)?$" /plus/home.php?language=$1 break;

添加到Nginx配置上,直接就测试通过。
比对之后才发现 规则是被双引号内,真是一个坑,记录一下。

Last Modified: September 28, 2023
Leave a Comment

2 Comments
  1. 何文 何文

    文章第三行貌似有个错字“期初”还是“起初”。

    1. Yooer Yooer

      @何文谢谢,已纠正。