8768 sujets

Développement web côté serveur, CMS

Modérateur
Salut,

Vraiment nul en redirection (en général je fais des copier/coller pour faire ça).
Il faudrait que je fasse une redirection d'un site vers son sous-domaine en www en utilisant le fichier htaccess à la racine de l'hébergement.
J'ai essayé ça :
Redirect permanent /  http://www.url-du-site.fr/

Bien entendu, ça ne fonctionne pas.
J'ia vu d'autres choses sur le web, mais je pense que ça ne concerne pas mon cas : http://www.itx-technologies.com/blog/546-rediriger-un-domaine-vers-un-sous-domaine-avec-htaccess

Merci d'avance.
Modérateur
Merci Victor mais c'est exactement le contraire que je voudrais faire :
passer de h ttp://url-du-site.com à h ttp://www.url-du-site.com
Modifié par jojaba (12 Feb 2015 - 18:00)
Modérateur
Olivier C a écrit :
...proposés par le .htaccess de HTML5 Boilerplate.

Effectivement !
# Option 2: rewrite example.com ?  www.example.com
 
#
# Be aware that the following might not be a good idea if you use "real"
# subdomains for certain parts of your website.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteCond %{SERVER_ADDR} !=127.0.0.1
RewriteCond %{SERVER_ADDR} !=::1
RewriteRule ^  http://www.%{HTTP_HOST}%{REQUEST_URI}  [R=301,L]
</IfModule>


Un peu trop complexe pour que je comprenne, la version que je propose précédemment est plus "compréhensible" en ce qui me concerne ( "!^www" signifie si le nom de domaine ne commence pas par "www"). Si je comprends bien la version du Boilerplate, les deux lignes contenant {SERVER_ADDR} prend en charge en plus le cas du localhost.
Modérateur
L'avantage de celle de Boilerplate est qu'elle est plus générique, elle fonctionnera quel que soit le nom de domaine.


RewriteCond %{SERVER_ADDR} !=127.0.0.1
RewriteCond %{SERVER_ADDR} !=::1

servent effectivement à éviter la réecriture en localhost (pour les ip locales en ipv4 et en ipv6). Ainsi -http://localhost/truc ne sera pas réerit en -http://www.localhost/truc

Notons que si possible, ces règles ne devraient pas être dans le .htaccess mais dans le vhost du site pour des raison de performance. Ce qui rend les deux règles précédentes inutiles.