【问题标题】:Nginx location alias + redirectionNginx位置别名+重定向
【发布时间】:2017-04-05 13:19:20
【问题描述】:

如果请求尝试访问 <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:// 并且浏览器没有下载该文件。

在这种情况下,我怎样才能只提供文件而不应用重定向?

谢谢

【问题讨论】:

  • 和我们完全一样的设置

标签: redirect nginx


【解决方案1】:

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 块。

【讨论】:

  • 您的位置建议/ 将匹配所有其他请求对吗?
  • @sf_tristanb 是的,你可以把它想象成默认的位置块。
  • 谢谢@Richard Smith
猜你喜欢
  • 2019-01-28
  • 1970-01-01
  • 2010-12-21
  • 2017-04-27
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
  • 1970-01-01
  • 2012-04-22
相关资源
最近更新 更多