Nginx:根据查询字符串参数选择别名

tct7dpnv  于 5个月前  发布在  Nginx
关注(0)|答案(1)|浏览(81)

我希望我的Nginx服务器根据查询字符串参数给予文件。我有调试文件和发布文件的目录,并希望根据参数值分发它们:

location /files/ {
    if ( $arg_isDebug = "true" )
    {
        alias "C:/DebugFiles/";
    }
    if ( $!arg_isDebug != "true" )
    {
        alias "C:/ReleaseFiles/Release/";
    }
}

字符串
但它给了我一个错误
这里不允许使用“别名”指令...
为什么我不能把它写在一个“if”语句中,有解决办法吗?

ax6ht2ek

ax6ht2ek1#

为什么我不能把它写在“if”语句中
文档指出alias只能 * 在位置上下文中使用。
有没有解决办法?
使用map指令。
举例来说:

map $arg_isDebug $alias {
default   "C:/ReleaseFiles/Release/";
true      "C:/DebugFiles/";
}

server {
    ...
    location ^~ /files/ {
        alias $alias;
    }
}

字符串
map块在server块之外声明。位置值和别名值都应以/结尾,或者都不以/结尾。您可能需要使用^~运算符,以避免与同一服务器块内的任何正则表达式位置发生潜在冲突。

相关问题