首页 > 解决方案 > 如何在 nginx certbot 中将非 www 重定向到 www

问题描述

我希望将非 www 请求重定向到 www 请求。例如

https://example.com.trhttps://www.example.com.tr

当我将letsencrypt ssl安装到我的服务器时,certbot在我的nginx配置文件中自动生成了一些字段。这是我当前的 next.js 配置,我尝试将非 www 重定向到 www,但它不起作用:

http {
...
server {

   root /var/www/html;

   index index.html index.htm index.nginx-debian.html;

   server_name bizimsehirgazetesi.com.tr www.bizimsehirgazetesi.com.tr;

   location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_cache_bypass $http_upgrade;
 }

    #19 agustos ssl anahtarı
    listen [::]:443 ssl http2 ipv6only=on; # managed by Certbot
    listen 443 ssl http2; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/bizimsehirgazetesi.com.tr/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/bizimsehirgazetesi.com.tr/privkey.pem; # managed by Certbot
  # include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


}

server {
    if ($host = www.bizimsehirgazetesi.com.tr) {
        return 301 https://www.bizimsehirgazetesi.com.tr$request_uri;
    } # managed by Certbot


    if ($host = bizimsehirgazetesi.com.tr) {
        return 301 https://www.bizimsehirgazetesi.com.tr$request_uri;
    } # managed by Certbot

   listen 80 default_server;

   listen [::]:80 default_server;

   server_name bizimsehirgazetesi.com.tr www.bizimsehirgazetesi.com.tr;
   return 404; # managed by Certbot
}}

我想重定向到 www url,因为我不想要任何基本 url 混淆。我只想为网站提供一个基本 URL,否则即使我的身份验证也可能会损坏。

标签: nginxredirectno-www

解决方案


推荐阅读