nginx的location正则匹配问题
程序员文章站
2024-02-06 18:49:34
...
回复讨论(解决方案)
rewrite ^/([A-D])([a-zA-Z0-9]{10})/?$ /index.php?a=$1&b=$2 last;
rewrite ^/([A-D])([a-zA-Z0-9]{10})/?$ /index.php?a=$1&b=$2 last;
是在location 里匹配,匹配到了做转发的
下面这个报错了,启动不了
location ^/([A-D])([a-zA-Z0-9]{10})/?$ { proxy_pass http://127.0.0.1:88/; proxy_redirect off; proxy_set_header Host localhost2; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Referer $http_referer; proxy_set_header Cookie $http_cookie; proxy_connect_timeout 60; proxy_read_timeout 600; proxy_send_timeout 600; }
location ~ ^/([A-D])([a-zA-Z0-9]{10})/?$
加个~就是正则匹配了
报错信息是什么?
贴出来。。。。
location ~ ^/([A-D])([a-zA-Z0-9]{10})/?$
加个~就是正则匹配了
还是报错,启动不了
正在启动 nginx:nginx: [emerg] pcre_compile() failed: missing ) in "^/([A-D])([a-zA-Z0-9]"
报错信息是什么?
贴出来。。。。
正在启动 nginx:nginx: [emerg] pcre_compile() failed: missing ) in "^/([A-D])([a-zA-Z0-9]"
missing ) in "^/([A-D])([a-zA-Z0-9]"
截断在大括号上了,估计是和后面的代码段大括号混淆,需要转义?或者把{10}直接换成+也可以
我没弄过这个...你看看有什么需要特殊处理的符号
missing ) in "^/([A-D])([a-zA-Z0-9]"
截断在大括号上了,估计是和后面的代码段大括号混淆,需要转义?或者把{10}直接换成+也可以
我没弄过这个...你看看有什么需要特殊处理的符号
也不行
location ^/([A-D])([a-zA-Z0-9]+)/?$ {}
我在我这边的nginx上能启动了
location ^/([A-D])([a-zA-Z0-9]+)/?$ {}
我在我这边的nginx上能启动了
你的对的,是我location下面的代码写错了
最后改成这样的了 "~/[A-D][a-zA-Z0-9]{10}$"