匹配位置后重写nginx

前端之家收集整理的这篇文章主要介绍了匹配位置后重写nginx 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我是Nginx的新手,只是尝试做一些我认为应该很简单的事情.如果我做:-

卷曲http://localhost:8008/12345678

我希望会返回index.html页面.但相反,我得到404未找到. /usr/share / Nginx / html / 12345678没有这样的文件

如果我卷曲http://localhost:8008/,我希望将请求路由到http://someotherplace/,但我却找到302,就这样.

对于基本问题深表歉意,但不胜感激!

这是代码

server {
    listen 8008;
    server_name default_server;

    location / {
       rewrite ^/$http://someotherplace/ redirect;
    }

    location ~ "^/[\d]{8}" {
       rewrite ^/$/index.html;
       root /usr/share/Nginx/html;
    }
}
最佳答案
^ / $与URI / 12345678不匹配-它仅与URI /相匹配.

您可以使用:

rewrite ^ /index.html break;

^只是匹配任何内容的许多正则表达式之一.分隔符后缀使重写的URI在同一位置块内进行处理.有关详细信息,请参见this document.

您可以使用try_files指令获得相同的结果:

location ~ "^/[\d]{8}" {
    root /usr/share/Nginx/html;
    try_files /index.html =404;
}

永远不会到达= 404子句,因为index.html始终存在-但是try_files必须至少具有两个参数.有关详细信息,请参见this document.

猜你在找的Nginx相关文章