http - nginx https 重定向添加 www

标签 http redirect nginx https

我的 nginx 配置中有两个服务器 block :

server {
    listen 80;
    server_name domain.com;
    return 301 https://domain.com$request_uri;
}

server {
    listen 443 ssl;
    server_name domain.com;
    <ssl stuff>
    <root directory>
}

我基本上是使用第一个服务器 block 将所有 HTTP 流量重定向到 HTTPS。我正在对重定向域名进行硬编码,因为我想明确避免重定向到 htps://www.domain... - 我想要 https://domain ...

当我请求非 www HTTP 域时,nginx 正确重定向到非 www HTTPS 域

但是,当我请求 www HTTP 域时,nginx 不会重定向到非 www HTTPS 域。不知何故,即使我明确指定不这样做,它也会向 HTTPS 重定向添加一个 www。

为什么?

最佳答案

只是在没有测试的情况下看这个,我会说它没有选择 www.domain.com 因为它没有在配置中指定。我相信您需要一个单独的 www 规范,或者使用正则表达式。

server {
    listen 80;
    server_name domain.com
                www.domain.com;
    return 301 https://domain.com$request_uri;
}

关于http - nginx https 重定向添加 www,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36322945/

相关文章:

javascript - 跨域 AJAX 请求未被阻止 : is this a security vulnerability?

apache - 使用 https 将域重定向到另一个域时出错

regex - 使用 .htaccess 将 http 和 https 的所有非 www 重定向到 www

ssl - 无法让 kubernetes 将我的 tls 证书传递给浏览器

ruby-on-rails - Rails 4 Rack::Deflater 不工作。页面速度显示未进行 gzip 压缩

audio - nginx:如何避免强制下载所有 wav 文件?

快速的http请求。不通过

json - Github API 创建提交

python - 如何在 Python 中打印出 http-response header

php - htaccess 301 重定向 url