nginx配置url重写 2018-07-17
2018-07-17 本文已影响0人
咩_先生O_0
- 举栗子
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官网