nginx配置url重写 2018-07-17

  • 举栗子
server {
         listen 443;
         server_name localhost;
         ssl on;
         #ssl配置省略
         location /blog/ {
            root /var/ftp/www/;//注意此处访问的页面是/var/ftp/www/blog/index.html
            index index.html;
         }
         location /api/ {
            proxy_pass https://localhost:3010;
         }
         location / {
            root /var/ftp/www/;
            index index.html;
         }
    }
#---------------------------------我是分割线------------------------------------------
server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;
        root   /var/ftp/www/;
        #index index.html index.php;
        
        location / {
          try_files $uri $uri/ /index.html;
        }
        location /index {
          if (!-e $request_filename){
            rewrite  ^(.*)$  /index.php?s=$1  last;   break;
          }
           
        }
}

location表达式类型

1. ~ 表示执行一个正则匹配,区分大小写
2. ~* 表示执行一个正则匹配,不区分大小写
3. ^~ 表示普通字符匹配。使用前缀匹配。如果匹配成功,则不再匹配其他location。
4. = 进行普通字符精确匹配。也就是完全匹配。
5. @ “@” 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files

location优先级说明

第一优先级:等号类型(=)的优先级最高。一旦匹配成功,则不再查找其他匹配项。
第二优先级:^~类型表达式。一旦匹配成功,则不再查找其他匹配项。
第三优先级:正则表达式类型(~ ~*)的优先级次之。如果有多个location的正则能匹配的话,则使用正则表达式最长的那个。
第四优先级:常规字符串匹配类型。按前缀匹配。
( 在nginx的location和配置中location的顺序没有太大关系。正location表达式的类型有关。相同类型的表达式,字符串长的会优先匹配。)


link

Nginx如何正确配置部署在子目录的vue项目
Nginx location在配置中的优先级
Nginx Location 正则表达式
Nginx官网

你可能感兴趣的:(nginx配置url重写 2018-07-17)