url redirect nginx

J'utilise le serveur web Nginx, après avoir utilisé Apache2 pendant des années. Je l'ai déployé sur ce blog, au bureau avec mon équipe, en DMZ et sur l'intranet. Les points les plus problématiques, quand on commence avec nginx, sont l'url rewrite et l'url redirect. La syntaxe de la réécriture d'url dans Nginx est différente de celle d'Apache2.

reecriture d'url avec nginx

Je vous présente dans ce qui suit, plusieurs possibilités :

  • le domaine redirect, utilisé lors d'un changement de nom de domaine
  • l'url rewriting, qui va réécrire l'url entré par l'utilisateur pour le serveur, sans modifier l'url dans la zone de saisie.
  • l'url redirect, qui modifie l'url entré par l'utilisateur, en modifie également dans la zone de saisie

server {

###############################################
# Redirection de domaine
# ici de http://rabah.dyndns.org
# vers http://www.it-wars.com
###############################################
  if ($host ~ "rabah.dyndns.org" ) {
     rewrite ^(.*) http://www.it-wars.com redirect;
     break;
  }

###############################################
# Redirection de sous-domaine
# ici de http://securite.it-wars.com
# vers http://www.it-wars.com/?categorie/secu
# avec modification de l'url saisi
###############################################
  if ( $sub = "securite" ) {
     rewrite ^(.*) http://www.it-wars.com/?categorie10/secu redirect;
     break;
  }

...

###############################################
# Redirection d'url
# ici, on laisse sitemap.xml dans la zone de
# saisi et on envoie sitemap.php
###############################################
  location ~ sitemap\.xml {
     rewrite ^/sitemap.xml$  /sitemap.php  last;
  }
###############################################
# Redirection d'url
# ici, on modifie dans la zone de
# saisi et on envoie vers feed.php?rss
###############################################
  location ~ \.php$ {
     if (!-f $request_filename) {
       rewrite ^/core/rss2.php$ /feed.php?rss  permanent;
       rewrite ^/core/rss.php$  /feed.php?rss  permanent;
       break;
     }
   
...
}

Voilà ... Des questions ?