Comparez les prix des domaines et des services informatiques des vendeurs du monde entier

Nginx: Redirection http sur https (ERREUR: Trop de redirections)

Fonctionnement Nginx Et une tentative de rediriger:

de www sur les non-www

http dans https

Je comprends qu'il y a des sujets similaires, mais aucun d'entre eux n'est associé au même scénario.

J'ai installé Webmin / Virtualmin et Fast-CGI. J'ai beaucoup de comptes / sites sur ce serveur. Pour mysite Ceci est une unité de serveur:

server {
listen my_server_IP;
server_name example.com www.example.com;
return 301 [url=https://example.com]https://example.com[/url]$request_uri;
root /home/example/public_html;
index index.html index.htm index.php;
access_log /var/log/virtualmin/example.com_access_log;
error_log /var/log/virtualmin/example.com_error_log;
fastcgi_param GATEWAY_INTERFACE CGI/1.1;
fastcgi_param SERVER_SOFTWARE nginx;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_param SCRIPT_FILENAME /home/example/public_html$fastcgi_script_name;
fastcgi_param SCRIPT_NAME $fastcgi_script_name;
fastcgi_param REQUEST_URI $request_uri;
fastcgi_param DOCUMENT_URI $document_uri;
fastcgi_param DOCUMENT_ROOT /home/example/public_html;
fastcgi_param SERVER_PROTOCOL $server_protocol;
fastcgi_param REMOTE_ADDR $remote_addr;
fastcgi_param REMOTE_PORT $remote_port;
fastcgi_param SERVER_ADDR $server_addr;
fastcgi_param SERVER_PORT $server_port;
fastcgi_param SERVER_NAME $server_name;
fastcgi_param HTTPS $https;
location ~ \.php$ {
try_files $uri =404;
fastcgi_pass unix:/var/php-nginx/148180748420424.sock/socket;
}
# htaccess
location / {
try_files $uri $uri/ /index.php?$args;
}
#
listen my_server_IP:443 ssl;
ssl_certificate /home/example/ssl.cert;
ssl_certificate_key /home/example/ssl.key;
}

Configuration dans la forme dans laquelle il semble maintenant n'est pas mon travail, sauf pour le bit #htaccess (converti de Apache .htaccess Pour inclusion "Beaux liens" dans Wordpress) et des cordes "return 301".

Certificat SSL de LetsEncrypt, Si cela compte.

J'ai sauvé et redémarré Nginx.

Quand demandez le site dans Chrome Il me dit "ERR_TOO_MANY_REDIRECTS"

Qu'est-ce que je fais mal? Dois-je ajouter quelque chose ou supprimer?
Invité:

Emilie

Confirmation de:

Ceci est une version simplifiée de votre configuration actuelle. (moins tous les bits qui ne feront rien de raisonnable) Avec quelques notes ajoutées afin que vous puissiez voir ce qui se passe. Les deux dernières lignes renvoient simplement tout au sommet. Par conséquent, de nombreuses erreurs de redirection.

server {
listen my_server_IP; #listen on IP x.x.x.x
listen my_server_IP:443 ssl; #listen on IP x.x.x.x on 443
server_name example.com www.example.com; #Of the requests on IP x.x.x.x look for those with with one of these headers. send to line below
return 301 [url=https://example.com]https://example.com[/url]$request_uri; #Send everything to the line above
}

C'est ce dont vous avez besoin, vous pouvez utiliser

if

Déclaration, mais ne laissez pas cette fois, juste que vous pouvez voir clairement ce qui se passe. C'est plus de lignes, mais cela fonctionnera.

server {
listen my_server_IP;
server_name example.com www.example.com; #Listen for non-https requests
return 301 [url=https://example.com]https://example.com[/url]$request_uri; #Send to the correct https address
}
server {
listen my_server_IP:443 ssl;
server_name www.example.com; #Listen for https (www) requests
return 301 [url=https://example.com]https://example.com[/url]$request_uri; #Send to the correct https
ssl_certificate /home/example/ssl.cert;
ssl_certificate_key /home/example/ssl.key;
}
server {
listen my_server_IP:443 ssl;
server_name example.com;
ssl_certificate /home/example/ssl.cert;
ssl_certificate_key /home/example/ssl.key;
<rest above,="" config="" etc="" fastcgi="" from="" of="" your="">
}

</rest>

Pour répondre aux questions, connectez-vous ou registre