nginx - 重定向到发出请求的 server_name

标签 nginx

是否可以重定向到一个 block 内发起请求的域?

server {
  listen 80;
  server_name my.domain.io your.domain.io;

  return 301 https://{my.domain.io OR your.domain.io}$request_uri;
}

我知道我可以创建 2 个 block - 一个引用 my.domain.io ,另一个引用 your.domain.io。我的问题是我有很多子域,并且不要一次又一次地重复这些 block ,从而引入大量 DRY 代码。

是使用$host完成的吗?我会尝试...但如果不是这样请告诉我。 ;)

更新

不,$host 不起作用...

最佳答案

感谢 Tarun Lalwani 测试了我的解决方案,我意识到我没有最新的代码库。对我来说太蹩脚了!

解决方案确实是$host:

return 301 https://$host$request_uri;

关于nginx - 重定向到发出请求的 server_name,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46101057/

相关文章:

php - PHP FPM不显示错误

http - 将 HTTP 重定向到 HTTPS 时如何处理 Nginx 中的 400 错误

nginx - 拒绝帧 '',因为它违反了以下内容安全策略指令

php - upload_max_filesize 设置为 1G 时无法上传超过 500MB 的文件

nginx - 如何使用Nginx阻止选定的Kibana子页面?

php - 如何在 nginx 反向代理后面将 XDebug 与 PHP 上游一起使用?

django - 从Django Docker向Nginx提供静态文件

java - 无法在 Ubuntu 上通过 PHP 执行 Java jar 文件

python - 设置Flask+uWSGI+nginx的最佳实践

node.js - Expressjs 到生产环境