nginx - CentOs Nginx 重定向 https://www 到 https://
问题描述
我在 centos 中使用 Nginx。我面临重定向问题。
我想将所有请求重定向到https://some-domain.com/url
我能够重定向
http://www.some-domain.com to https://some-domain.com
www.some-domain.com to https://some-domain.com
http://some-domain.com to https://some-domain.com
但我无法重定向https://www.some-domain.com
配置文件:
server
{
listen 443 ssl;
server_name some-domain.com www.some-domain.com;
ssl_certificate /etc/nginx/ssl/some-domain.com.chained.crt;
ssl_certificate_key /etc/nginx/ssl/some-domain.com.key;
if ($host = https://www.some-domin.com) {
return 301 https://some-domin.com$request_uri;
}
}
解决方案
最好将两个服务器括号分开以避免使用“if”。您的问题是您向主机添加了“https://”,而您需要比较的只是 www.some-domain.com。
这个例子更简单:
#Server bracket for https connections that come with host www.some-domain.com
server
{
listen 443 ssl;
server_name www.some-domain.com;
ssl_certificate /etc/nginx/ssl/some-domain.com.chained.crt;
ssl_certificate_key /etc/nginx/ssl/some-domain.com.key;
#redirects to https://non-www
location / {
return 301 https://some-domin.com$request_uri;
}
}
# and then you can set a server bracket for non-www https connections.
# nginx will sort the connections depending on host for itself
server
{
listen 443 ssl;
server_name some-domain.com;
ssl_certificate /etc/nginx/ssl/some-domain.com.chained.crt;
ssl_certificate_key /etc/nginx/ssl/some-domain.com.key;
#Here it arrives 443 and without www, do what you wanted here
}
推荐阅读
- redis - 监听特定键名的redis过期事件
- node.js - 如何构建一个在后台保持活动状态并每隔几秒执行一次轮询操作的节点 js 程序/服务?
- unity3d - 在 Unity 中,如何根据响度从麦克风中分割用户的声音?
- vimeo - 单击“播放”按钮后,如何将 Vimeo 视频设置为以全屏模式播放?
- neo4j - 密码查询以测试关系共性
- asp.net-core-mvc - Rotativa.AspNetCore 分页符半行进入下一页
- google-cloud-platform - 日期分区或日期分片
- python - 在旧 SBC 上运行的 Flask 中 webapp 的 DB 选择
- android - 如何从 Jacoco 报告中的 Parcelable 中排除自动生成的方法?
- json - 如何在打字稿中对json对象进行排序