nginx重写到位置别名时出现意外行为

时间:2015-04-17 15:37:09

标签: nginx browserstack

出于某种原因,重写为location /ancient/并不起作用。

如果我换掉" / ancient /"为" http://google.com" (或任何URL),重写工作。所以我知道我对IE 6的检查工作正常。

另外,如果我尝试直接从浏览器直接访问/etc/static/ancient/,我可以。所以我知道可以访问所需的文件。

location / {

    if ($http_user_agent ~ "MSIE 6.0") {
        rewrite ^ /ancient/;
        break;
    }
}

location /ancient/ {
    alias /Users/myusernametho/sterling/etc/static/ancient/;
}

我在BrowserStack上使用curl(UA欺骗)并运行相同的结果。

我是否误解了重写指令的工作原理?

1 个答案:

答案 0 :(得分:0)

在您的重写中需要选择flag parameter {breaklastredirect)。在你的情况下。 您忘记在break指令的末尾写rewrite,如下所示:

rewrite ^ /ancient/ break;

并且您不需要break

末尾的if