nginx - nginx 服务器块路由与 cname 组合
问题描述
所以我有一个https://blog.example.net
将成为该网站的主要域,我正在尝试将所有可能的变体重定向example.net
到它。
以下是我想要涵盖的所有可能查询的列表:
http://example.net
https://example.net
http://www.example.net
https://www.example.net
- 1http://blog.example.net
https://blog.example.net
http://www.blog.example.net
https://www.blog.example.net
- 2
为了涵盖所有这些,我制作了 2 个服务器块:
server {
listen 443 ssl;
ssl_certificate /path/to/ssl;
ssl_certificate_key /path/to/key;
server_name blog.example.net;
root /path/to/website;
index index.html;
}
server {
listen 80;
server_name example.net;
return 301 https://blog.example.net$request_uri;
}
其余的由记录处理,如下所示:
example.net - A - 1.1.1.1
blog.example.net - A - 1.1.1.1
www.blog - CNAME - blog.example.net
www - CNAME - blog.example.net
所有这些都涵盖了 8 个查询中的 6 个。那些用斜体标记并且旁边有一个数字的那些是唯一不起作用的。
第一个是让浏览器发出安全警告,因为显然 SSL 是针对“blog.domain.net”的。第二个工作正常,但是,它在 url 地址中保留了“www”。
处理这些障碍的任何帮助将不胜感激。
升级版:
通过添加此块,我设法修复了将“www”保留在 url 中的第二个:
server {
listen 443;
server_name www.blog.example.net;
return 301 https://blog.example.net$request_uri;
}
所以唯一的问题是https://www.example.net
抛出安全警告,因为 SSL 证书适用于blog.example.net
解决方案
推荐阅读
- php - GCE - 根据 API 请求打开和关闭虚拟机
- azure-devops - 发布分支 X 策略的触发器
- excel - Vba 位数迁移 - “-”运算符上的类型不匹配
- typescript - Angular 2+ - 使用 API 的树表
- spring-boot - 如何解决 Spring Boot 与 Websphere 传统 8.5.5 jaxb 冲突问题?
- c# - SQLCipher 集成到 Xamarin.Forms;SQLite 库不支持加密异常
- azure-devops - 如何在 azure 管道版本中检查已发布管道工件的可用性
- shadow-dom - shadowRoot 自定义元素不呈现内容
- r - 动态 pivot_longer 和 facet wrap ggplot
- c++ - 为什么即使我没有在此代码中进行转换?