GNU/Linux >> Tutoriels Linux >  >> Linux

Comment rediriger les URL avec Nginx

Qu'est-ce qu'une redirection ?

Une redirection est une fonction de serveur Web qui redirige le trafic d'une URL vers une autre. Les redirections sont une fonctionnalité importante lorsque le besoin s'en fait sentir. Il existe plusieurs types de redirections, mais les formes les plus courantes sont temporaires et permanentes. Dans cet article, nous fournirons quelques exemples de redirection via le fichier vhost, forçant une connexion HTTPS sécurisée, redirection vers www et non-www ainsi que la différence entre les redirections temporaires et permanentes.

RemarqueComme il s'agit d'un serveur Nginx, aucune règle .htaccess ne s'appliquera. Si vous utilisez l'autre serveur Web populaire, Apache, vous trouverez cet article utile.

Méthodes courantes pour les redirections

Les redirections temporaires (code de réponse :302 Found) sont utiles si une URL est temporairement servie à partir d'un emplacement différent. Par exemple, ils sont utiles lors de la maintenance et peuvent rediriger les utilisateurs vers une page de maintenance.

Cependant, les redirections permanentes (code de réponse :301 Moved Permanently) informent le navigateur qu'il existe une ancienne URL qu'il doit oublier et ne plus tenter d'accéder. Celles-ci sont utiles lorsque le contenu a été déplacé d'un endroit à un autre.

Comment rediriger

En ce qui concerne Nginx, cela est géré dans un .conf fichier, généralement situé dans le répertoire racine du document de votre ou vos sites, /etc/nginx/sites-available/directory_name .conf . Le répertoire racine du document est l'endroit où se trouvent les fichiers de votre site et il peut parfois se trouver dans le /html si vous avez un site sur le serveur. Ou si votre serveur a plusieurs sites, cela peut être sur /domain.com. Dans tous les cas, ce sera votre nom de fichier .conf. Dans le dossier /etc/nginx/sites-available/ répertoire, vous trouverez le répertoire default fichier que vous pouvez copier ou utiliser pour ajouter vos redirections. Ou vous pouvez créer un nouveau nom de fichier html.conf ou domain.com.conf.

RemarqueSi vous choisissez de créer un nouveau fichier, assurez-vous de mettre à jour vos liens symboliques dans le fichier /etc/nginx/sites-enabled. Avec la commande :

ln -s /etc/nginx/sites-available/domain.com.conf /etc/nginx/sites-enabled/domain.com.conf

Le premier exemple que nous allons couvrir est la redirection d'une page/répertoire spécifique vers la nouvelle page/répertoire.

Redirection temporaire de page à page

server {
# Temporary redirect to an individual page
rewrite ^/oldpage$ http://www.domain.com/newpage redirect;
}

Redirection page à page permanente

server {
# Permanent redirect to an individual page
rewrite ^/oldpage$ http://www.domain.com/newpage permanent;
}

Redirection www vers non-www permanente

server {
# Permanent redirect to non-www
server_name www.domain.com;
rewrite ^/(.*)$ http://domain.com/$1 permanent;
}

Redirection permanente vers www

server {
# Permanent redirect to www
server_name domain.com;
rewrite ^/(.*)$ http://www.newdomain.com/$1 permanent;
}

Parfois, il sera nécessaire de changer le nom de domaine d'un site Web. Dans ce cas, une redirection de l'ancienne URL des sites vers la nouvelle URL des sites sera très utile pour informer les utilisateurs que le domaine a été déplacé vers une nouvelle URL.

L'exemple suivant que nous aborderons est la redirection d'une ancienne URL vers une nouvelle URL.

Redirection permanente vers une nouvelle URL

server {
# Permanent redirect to new URL
server_name olddomain.com;
rewrite ^/(.*)$ http://newdomain.com/$1 permanent;
}

Nous avons ajouté la redirection en utilisant la directive de réécriture dont nous avons parlé plus tôt. Le ^/(.*)$ l'expression régulière utilisera tout après le / dans l'URL. Par exemple, http://ancien domain.com/index.html redirigera vers http://nouveau domaine.com/index.html. Pour réaliser la redirection permanente, nous ajoutons permanent après la directive de réécriture comme vous pouvez le voir dans l'exemple de code.

En ce qui concerne HTTPS et étant entièrement sécurisé, il est idéal pour forcer tout le monde à utiliser https:// au lieu de http://.

Redirection vers HTTPS

server {
# Redirect to HTTPS
listen      80;
server_name domain.com www.domain.com;
return      301 https://example.com$request_uri;
}

Une fois ces règles de réécriture en place, il est recommandé de tester la configuration avant d'exécuter un redémarrage. La syntaxe Nginx peut être vérifiée avec le -t drapeau pour s'assurer qu'il n'y a pas de faute de frappe dans le fichier.

Vérification de la syntaxe Nginx

nginx -t

Si rien n'est renvoyé, la syntaxe est correcte et Nginx doit être rechargé pour que les redirections prennent effet.

Redémarrer Nginx

service nginx reload

Pour CentOS 7 qui contrairement à CentOS 6 , utilise systemd :

systemctl restart nginx

Redirections sur WordPress/WooCommerce géré

Si vous utilisez nos produits Managed WordPress/WooCommerce, les redirections peuvent se produire via /home/s#/nginx/redirects.conf dossier. Chaque site aura son propre s# qui est l'utilisateur FTP/SSH par site. Le plugin appelé "Redirection" peut être téléchargé pour aider avec une simple redirection de page à page, sinon le fichier redirects.conf peut être utilisé pour ajouter des redirections plus spécifiques en utilisant les exemples expliqués ci-dessus.

En raison de la nature d'une plate-forme gérée après avoir mis en place les règles dans le fichier redirects.conf, veuillez contacter l'assistance et demander le rechargement de Nginx. Si vous n'êtes pas à l'aise avec l'exécution des étapes décrites ci-dessus, contactez notre équipe d'assistance via le chat, un ticket ou un appel téléphonique. Avec Managed WordPress/WooCommerce, vous bénéficiez d'une assistance disponible 24h/24 et 7j/7 et prête à vous aider !


Linux
  1. Comment utiliser Nginx pour rediriger

  2. Comment installer WordPress avec Nginx sur Ubuntu 18.04

  3. Comment désactiver ETag dans NGINX

  4. Comment rediriger http vers https en utilisant .htaccess ?

  5. Comment empêcher nginx d'utiliser le port 80

Comment bloquer XML-RPC dans WordPress en utilisant Nginx/Apache

Comment activer IPv6 dans Nginx ?

Comment installer WordPress en utilisant Nginx dans Ubuntu Linux

Comment rediriger les URL www vers non-www dans WordPress

Comment installer WordPress sur une pile Nginx LEMP avec Ubuntu 14.04

Comment installer Nginx sur CentOS 7 ?