ubuntu - 无法将 https://www.example.com 重定向到 https://example.com
问题描述
我在 Ubuntu 上使用 Nginx,并且能够将 www.example.com 重定向到https://example.com,但不能从 SSL 重定向到带有 www 子域的 SSL。
这是我的/etc/nginx/sites-enabled/myapp.conf
:
# redirect non https traffic for the correct domains
server {
if ($host = example.com) {
return 301 https://$host$request_uri;
} # managed by Certbot
listen 80 default_server;
listen [::]:80 default_server;
server_name www.example.com;
return 301 https://example.com$request_uri;
return 404; # managed by Certbot
}
server {
listen [::]:443 ssl ipv6only=on;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
# server for these domains
server_name example.com;
# first try to serve the erb version.
index index.html;
# Tell Nginx and Passenger where your app's 'public' directory is
root /var/www/myapp/code/public;
# Turn on Passenger
passenger_enabled on;
passenger_ruby /usr/local/rvm/gems/ruby-2.5.1/wrappers/ruby;
}
有没有办法将所有 www 子域流量重定向到根域,即使在 https:// 之后输入 www URL?
谢谢,任何帮助表示赞赏。
解决方案
是的,添加以下服务器块:
# remove 'www'
server {
listen 80;
listen 443 ssl;
server_name www.domain.com;
return 301 https://example.com$request_uri;
}
这是来自nginx 文档。
推荐阅读
- python - Pyspark 将嵌套结构字段转换为 Json 字符串
- c - O_DIRECT 写子缓冲区
- javascript - 尝试登录时反应本机firebase注销方法会删除我的电子邮件和密码数据
- python - 如何使用 Python 使用 SendGrid 发送超链接
- regex - 识别字符串由重复字符组成的记录
- python - 用圆角坐标在 Python 中序列化 GeoJSON
- r - 如何扩展 PCA 的结果?
- java - Intellij 如何在 Android 应用程序中使用 OpenCV
- excel - VBA - 获取所有 ActiveSheets 的名称
- reactjs - Redux ConnectedProps 的类型是 never