301 Redirect L oop www to non- www - WordPress - Nginx + Apache2 - PullRequest
0 голосов
/ 06 февраля 2020

Спасибо за любую помощь. Я не серверный парень, но я сейчас имею дело с сервером. У меня есть сайт, который находится в редиректе l oop с www to без www. Я использую DigitalOcean Droplet с Ubuntu и Nginx для SSL. У меня изначально были проблемы с работой SSL, и я создал конфигурацию на основе этого поста в StackExchange: https://wordpress.stackexchange.com/questions/331234/wordpress-redirect-loop-on-nginx-apache-reverse-proxy. Основным отличием, которое я сделал, было использование перенаправления 302 в последнем блоке сервера. Однако кто-то сказал мне изменить его на 301, и теперь я получаю l oop от www to не-www. Ниже приведен мой файл конфигурации.

server {
        server_name .mysite.com;
        root /var/www/html;

        # Add index.php to the list if you are using PHP
        index index.php index.html;

        gzip on;
        gzip_types application/javascript image/* text/css;
        gunzip on;

        location ~\.(js|css|png|jpg|jpeg) {
                try_files $uri $uri/ =404;
        }

        location / {
                try_files $uri @apache;
        }

        location ~[^?]*/$ { # proxy directories
                proxy_set_header X-Real-IP  $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Host $host;
                proxy_pass http://127.0.0.1:8080;
        }

        location ~ \.php$ { # serve php files
                proxy_set_header X-Real-IP  $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Host $host;
                proxy_pass http://127.0.0.1:8080;
        }

        location @apache { # used by location /
                proxy_set_header X-Real-IP  $remote_addr;
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header Host $host;
                proxy_pass http://127.0.0.1:8080;
        }


        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        location ~ /\.ht {
                deny all;
        }

        listen [::]:443 ssl ipv6only=on;
        listen 443 ssl;
        ssl_certificate /etc/letsencrypt/live/mysite.com/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/mysite.com/privkey.pem;
        include /etc/letsencrypt/options-ssl-nginx.conf;
        ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;

}

server {
    listen 80;
    server_name _;
    return 301 https://$host$request_uri;
}

Примечание: изменение 301 обратно на 302. Не решило проблему.

Пожалуйста, помогите, спасибо!

Редактировать: I также подтвердили, что в базе данных нет ссылок на www.mysite.com. Я использовал WP-CLI, чтобы найти любой. А URL-адреса дома и сайта всегда были без www.

...