Nginx位置别名+重定向

时间:2017-04-05 13:19:21

标签: redirect nginx

如果请求尝试访问<host>/.well-known/acme-challenge/以提供匹配文件,我希望能够找到。

如果请求是其他内容,我想将其重定向到https://

server {
    listen 8080;
    server_name my_example.com;

    location /.well-known/acme-challenge/ {
        alias /var/www/encrypt/.well-known/acme-challenge/;
        try_files $uri =404;
    }

    return 301 https://$server_name$request_uri;
}

问题是当访问存在于别名路径中的my_example.com/.well-known/acme-challenge/12345时,我仍然重定向到https://并且浏览器不会下载该文件。

如何在这种情况下只提供文件而不应用重定向?

由于

1 个答案:

答案 0 :(得分:3)

return语句放在location块中:

例如:

server {
    listen 8080;
    server_name my_example.com;

    location /.well-known/acme-challenge/ {
        root /var/www/encrypt;
    }
    location / {
        return 301 https://$server_name$request_uri;
    }
}

此外,简化了您的其他location阻止。