nginx - 如何将 WWW url 重定向到 nginx 中的非 www url?
问题描述
我的 nginx 配置有问题,我想将www.yoursay.transport.nsw.gov.au重定向到https://yoursay.transport.nsw.gov.au
这是我的配置
server {
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/yoursay.transport.nsw.gov.au/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/yoursay.transport.nsw.gov.au/privkey.pem;
# enable OCSP stapling to speed up first connect
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/letsencrypt/live/yoursay.transport.nsw.gov.au/chain.pem;
if ($host = www.$server_name) {
rewrite ^(.*) https://$server_name$request_uri? permanent;
}
server_name yoursay.transport.nsw.gov.au;
root /var/www/ehq;
add_header X-XSS-Protection "1; mode=block";
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header Strict-Transport-Security "max-age=15768000; includeSubDomains; preload";
include snippets/common_blocks.inc;
}
server {
listen 80;
server_name yoursay.transport.nsw.gov.au;
return 301 https://yoursay.transport.nsw.gov.au$request_uri;
}
但它仍然不起作用,它说 ERR_CONNECTION_CLOSED
请帮我解决这个问题。
解决方案
替换这个:
if ($host = www.$server_name) {
rewrite ^(.*) https://$server_name$request_uri? permanent;
}
server_name yoursay.transport.nsw.gov.au;
有了这个:
if ($host = www.yoursay.transport.nsw.gov.au) {
return 301 https://yoursay.transport.nsw.gov.au$request_uri;
}
server_name yoursay.transport.nsw.gov.au www.yoursay.transport.nsw.gov.au;
解释:
当有人访问您的网站时,他们会发送 HTTP 请求标头。其中之一是Host
他们用来访问网站的地址。它可以是 IP 地址、www.example.com
、example.com
或something.completely.irrelevant
。server_name
选项定义Host
此配置属于哪些标头。这就是我添加www.yoursay.transport.nsw.gov.au
到server_name的原因,所以这个配置用于访问地址的访问者。您可能还希望在您的 HTTP 服务器块(侦听端口 80)中重复此操作。
推荐阅读
- python - 没有偏移符号的 Matplotlib 颜色条
- python - QStyledItemDelegate:添加禁用检查指示器
- jestjs - 排毒失败并显示“找不到模块 'jest-cli/build/cli/args'”
- r - 如何使用环境变量执行 dplyr 连接
- javascript - 在具有首字母缩写词支持的连接大写单词之间插入空格
- spring - Spring @Transactional Isolation 级别覆盖策略解释
- mysql - MySql分层查询
- flutter - 在 Flutter 中无法改变 ListView 中 DropDown Menu 的状态
- c - 为什么我收到错误“kernel/drivers/screen.c:7:22: error: invalid initializer char* string[] = message;”
- javascript - 如何将axios请求中的参数变成对象?