Force www. et https dans nginx.conf (SSL)
Après l'achat d'un certificat SSL, j'ai essayé de forcer toutes les pages https sécurisée et www.
https://www.exampl.com est travail et sécurisé, mais seulement si le type exactement. www.example.com ou example.com sont toujours orientés vers la de http.
Nous utilisons nginx comme serveur proxy et le besoin à l'entrée de la réécriture. J'ai SSH /root accès via Putty. J'ai consulté nginx.conf, par l'introduction dans le mastic.
Maintenant? Dois-je saisir le nginx commandes sur cette page? À partir du moment où le curseur est? Toutes les lignes de commande en premier?
HTTPS:
.htacess – code Original m'a été donné avant j'étais à l'entrée dans nginx
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
Nginx convertisseur de code – C'est qu'il s'affiche sur le convertisseur. Tout est dans le bon sens?
# nginx configuration location /{
if ($http_host ~* "^example.com"){
rewrite ^(.*)$ http://example.com/$1 redirect; } }
et puis
WWW
.htacess – code Original m'a été donné avant j'étais à l'entrée dans nginx
#Force www:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [L,R=301,NC]
Nginx convertisseur de code – C'est qu'il s'affiche sur le convertisseur. Tout est sur la bonne ligne?
# nginx configuration location /{
if ($http_host ~* "^example.com"){
rewrite ^(.*)$ http://www.example.com/$1 redirect; }
}
Puis-je enregistrer? Redémarrer?
Toute aide serait grandement appréciée. J'ai lutté pendant des semaines. Mon hébergeur a aidé aussi loin qu'ils pouvaient, maintenant, je suis d'apprentissage à la volée.... Ou dois-je tout arrêter et d'embaucher un développeur? $$$
Grâce
OriginalL'auteur Ender17 | 2015-09-09
Vous devez vous connecter pour publier un commentaire.
La meilleure façon de mettre en œuvre WWW et HTTPS redirection est de créer un nouveau
server
section dans Nginx config:Vous aurez également à effectuer https://example.com à https://www.example.com de redirection. Cela peut être fait avec un code similaire au suivant:
Et bien sûr, vous devez recharger la config Nginx après chaque modification. Voici quelques commandes utiles:
vérifier les erreurs dans la configuration:
recharger la configuration (ce qui serait suffisant pour faire des changements "travail"):
redémarrer l'ensemble du serveur:
Remarque importante:
Tous vos
server
les sections doivent être à l'intérieur dehttp
section (ou dans un fichier inclus danshttp
section):server { listen 443 ssl; server_name example.com; ssl_certificate ssl.crt; /var/cpanel/ssl/installé/certs/example_com_dfb5e_bdd8f_1472083199_f90ea94fc518775dfb39c8495459faef.crt ssl_certificate_key ssl.clé; /var/cpanel/ssl/installé/keys/dfb5e_bdd8f_97d6e27f792fd220e7cd5d1bdcb11788.de retour pour la clé 301 example.com$request_uri; }
Juste mettre les chemins d'accès au lieu de
ssl.crt
etssl.key
. J'ai utilisé ces noms de fichiers comme des exemples. Il y a un bon manuel comment mettre en place le protocole SSL dans NginxCurieux C'est ce que j'ai utilisé. server { listen 443 ssl; server_name example.com; ssl_certificate /var/cpanel/ssl/installé/certs/example_com_dfb5e_bdd8f_1472083199_f90ea94fc518775dfb39c8495459faef.crt ssl_certificate_key /var/cpanel/ssl/installé/keys/dfb5e_bdd8f_97d6e27f792fd220e7cd5d1bdcb11788.de retour pour la clé 301 example.com$request_uri; }
curieux Alors j'ai utilisé sudo service nginx recharger Puis ctrl O pour enregistrer. Je ne pense pas que tout ce qui s'est passé
OriginalL'auteur Oleg
La solution suivante semble être clair et simple, tout défini dans un bloc de serveur. Donc, avec cette configuration que je force tout https://www.domain.tld, de sorte que les deux gestionnaires sont ici non HTTPS et non sur HTTPS WWW.
Il y a deux SI mais si vous ne voulez pas de dupliquer toute la SSL du bloc à deux reprises pour le manipuler... c'est la façon de le faire.
Et même la meilleure solution pour éviter SI:
OriginalL'auteur stamster
Si vous avez un sites-enabled répertoire, n'utilisez pas le "http" en haut de la directive. Il suffit de créer un autre fichier (avec un nom) dans les sites-enabled répertoire:
et commentez la ligne
où nom_serveur est le même dans l'autre fichier qui sert http://www.example.com
OriginalL'auteur David Noriega