nginx redirection qui force la mise à jour de l'URL dans le browser

J'ai une configuration nginx très basique qui redirige www.example.com vers example.com , en suivant les meilleures pratiques . Cela fonctionne, et dans le browser Tor Firefox, aller à http://www.idorecall.com/blog en effet met à jour l'URL dans la barre d'adresse à http://idorecall.com/blog .

Mais cela ne change pas l'URL dans la barre d'adresse de Chrome, Firefox Portable, IE et Opera Portable.

Voici la configuration nginx default modifiée. Il n'y a pas d'autres files de configuration nginx autres que nginx.conf.

 server { server_name www.idorecall.com; return 301 $scheme://idorecall.com$request_uri; } server { listn 80 default_server; listn [::]:80 default_server; root /var/www/html; index index.html index.htm index.nginx-debian.html; server_name idorecall.com; location / { try_files $uri $uri/ =404; } location /blog { proxy_set_header X-Real-IP $remote_addr; proxy_set_header HOST $http_host; proxy_pass http://127.0.0.1:2368; } } 

wget -S , http://www.rexswain.com/httpview.html , les browsers, etc. détectent correctement la redirection 301 "Déplacé en permanence". La plupart des browsers conservent l'URL www. Super frustrant. Firefox et Opera ont été installés à partir de zéro, donc il n'y a aucun succès sur le domaine www.

GitHub parvient à redirect http (s): //www.github.com vers https://github.com dans tous les browsers. comment font-ils ça?

    One Solution collect form web for “nginx redirection qui force la mise à jour de l'URL dans le browser”

    Vous ne voyez pas la redirection (et krisFR est) car vous avez IPv6 (et il ne le fait pas), et votre bloc de server nginx contenant la redirection n'est utilisé que pour les connections IPv4.

    Lorsqu'un bloc de server omet la directive d' listn , il est par défaut listn *:80 , qui n'écoute que sur toutes les adresses IPv4 (et est équivalent à listn 80 ). Ainsi, ce bloc server ne sera jamais utilisé pour les connections IPv6, qui correspondent à votre server par default_server défini.

    Pour résoudre le problème, ajoutez les directives d'écoute appropriées pour écouter à la fois IPv4 et IPv6.

     server { listn 80; listn [::]:80; server_name www.idorecall.com; return 301 $scheme://idorecall.com$request_uri; } 
    Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de réseau.