Apache redirection www
Par PlaceOweb le dimanche, avril 3 2011, 12:31 - Outils Internet - Lien permanent
Comment, avec Apache, rediriger un site sans l'alias www vers une url avec son alias www inclus ?
Par exemple lorsque vous saisissez "placeoweb.com/ip", voici comment faire une redirection vers "www.placeoweb.com/ip"
Pour rediriger avec Apache n'importe quel domaine vers www.leDomaineQuelconqueApppelé.extension, il vous faudra activer le module rewrite en incluant dans votre configuration
LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so
Sous Debian, rajouter un lien symbolique dans mods-enabled qui pointe sur mods-available/rewrite.load
Ensuite il faudra éditer le host ou vhost qui écoutera les réponses et se chargera d'effectuer les redirections selon les règles que nous allons définir. En général il s'agira du site par défaut : sites-available/default que j'ai réduit à ses plus simples instructions de redirect :
<VirtualHost *:80> RewriteEngine on RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] </VirtualHost>
Relancez Apache, et faite vous plaisir à accès à vos sites sans avoir besoins de taper l'alias www. Vous venez d'activer une redirection permanent (301) vers votre domaine avec l'alias www en préfixe.
Information sur les drapeaux/flags (options entre [])
- Apache 2.2 RewriteRule Directive : drapeaux
- Apache 2.0 RewriteRule Directive : flags
[flags]
A la directive RewriteCond. Flags est une liste de commutateurs ci-après définis séparés par des virgules :
- 'nocase|NC' (Pas de casse : no case) La casse est indifférente dans ce cas, c'est-à-dire qu'il n'y aura aucune différence entre les lettres 'A-Z' et 'a-z', que ce soit dans la chaîne TestString ou CondPattern.
- 'ornext|OR' (ou condition suivante) Utilisez ce commutateur pour lier deux conditions.
A la directive RewriteRule. Flags est une liste de commutateurs ci-après définis séparés par des virgules :
- 'redirect|R[=code]' (force la redirection) Préfixez substitution par une chaîne de type http://cetHôte[:cePort]/ (qui fait de cette nouvelle URL une URI) pour forcer une redirection externe. Si aucun code n'est mentionné, un code de réponse HTTP 302 (MOVED TEMPORARILY) sera utilisé par défaut. Si vous souhaitez renvoyer un autre code de réponse, dans les séries 300 ou 400, mentionnez ce code sous forme numérique ou utilisez l'une des constantes symboliques ci-après : temp (défaut), permanent, seeother. Utilisez cette fonction pour des règles qui auraient tendance à canoniser les URL et les renvoyer ainsi au client, ex. qui traduisent "/~" en "/u/" ou ajoutent systématiquement un slash à /u/user, etc.
- 'forbidden|F' (force l'URL à apparaître comme interdite : forbidden) Ceci force l'URL courante sur l'URL interdite, c'est à dire que le serveur enverra immédiatement une réponse HTTP de code 403 (FORBIDDEN). Utilisez ce commutateur en conjonction avec des directives RewriteConds appropriées pour bloquer l'accès à certaines URL sous certaines conditions.
- 'gone|G' (force l'URL à apparaître comme une redirection définitive : gone) Ceci force une réponse HTTP de code 410 (GONE). Utilisez ce commutateur pour marquer que les ressources demandées ont définitvement "déménagé".
- 'last|L' (dernière règle : last rule) Arrête le traitement de réécriture en ce point et n'applique plus aucune règle de réécriture postérieure. Ceci correspond à l'instruction Perl last ou au break du C dans une boucle. Utilisez ce commutateur pour éviter que l'URL réécrite par cette règle ne soit à son tour modifiée une nouvelle fois par d'autres règles pour lesquelles le motif pourrait correspondre. Par exemple, vous pouvez l'utiliser pour réécrire l'URL d'accès à root ('/') vers une URL opérationnelle, comme '/e/www/'.
Ressources
- Apache redirect domain.com to www.domain.com
- Redirection apache : forcer les www
- Liste des codes HTTP
- 301 Moved Permanently Document déplacé de façon permanente
- 302 Found Document déplacé de façon temporaire
- Bloquer certains robots ou navigateurs indésirables