NGINX服务器位置优先

时间:2015-03-23 18:38:26

标签: nginx location server operator-precedence

我对NGINX服务器很新,我想知道如何修复此位置优先级,因为它不起作用。

  • 我希望服务器查找/ phpmyadmin /如果匹配则使用其root,否则使用第二个位置块。

    location ^/phpmyadmin/.*\.(gif|jpg|jpeg|png|ico|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|html|htm|wml)$ {
    root /usr/share/phpmyadmin;
    }
    
    location ~* .(gif|jpg|jpeg|png|ico|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|html|htm|wml)$ {
    root /home/safeftp/www/public_html;
    expires 30d;
    }
    

非常感谢你的答案。 彼得

1 个答案:

答案 0 :(得分:1)

您需要在第一个位置块上使用~*(不区分大小写的匹配)语法。此外,最好养成用双引号或单引号包装正则表达式的习惯,以防你有空格或其他特殊字符。

location ~* "^/phpmyadmin/.*\.(gif|jpg|jpeg|png|ico|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|html|htm|wml)$" {
    root /usr/share/phpmyadmin;
}

location ~* "\.(gif|jpg|jpeg|png|ico|wmv|3gp|avi|mpg|mpeg|mp4|flv|mp3|mid|js|css|html|htm|wml)$" {
    root /home/safeftp/www/public_html;
    expires 30d;
}