Interdire example.com et obliger www.example.com

Discussion dans 'URL Rewriting et .htaccess' créé par WebRankInfo, 25 Novembre 2003.

  1. seabird
    seabird WRInaute occasionnel
    Inscrit:
    1 Décembre 2003
    Messages:
    318
    J'aime reçus:
    0
    Bonjour,

    Pour un de mes sites j'avais ce code qui marchait sans problème:
    Code:
    RewriteCond %{HTTP_HOST} !^www\.exemple\.com [NC]
    RewriteRule (.*) http://www.exemple/$1 [QSA,R=301,L]
    
    Maintenant lorsque je tape -http://.exemple.com/ je suis redirigé vers -http://www.exemple/
    donc forcément il y a une erreur.

    j'ai donc changé le code pour celui-la:
    Code:
    RewriteCond %{HTTP_HOST} !^www.exemple.com$
    RewriteRule ^(.*)   http://www.exemple.com/$1  [QSA,L,R=301]
    
    Avec celui-là cela refonctionne.

    D'où ma question. Pourquoi cela ne fonctionne plus avec le premier code alors qu'avec d'autres sites au même endroit cela fonctionne.
     
  2. Denis83
    Denis83 WRInaute discret
    Inscrit:
    28 Septembre 2004
    Messages:
    60
    J'aime reçus:
    0
    Bonjour,

    J'ai lu toute la discussion sans trouver mon bonheur...
    Je suis sous OVH en multi-domaine (et non en sous-domaine !)
    J'ai essayé :
    Code:
    Options +FollowSymlinks 
    RewriteEngine on 
    RewriteCond %{HTTP_HOST} ^lafermeduchevalnnn.com$
    RewriteRule ^(.*) h**p://www.lafermeduchevalnnn.com/$1 [QSA,L,R=301]
    Et bien d'autres codes, mais rien à faire je tombe toujours sur webmail d'OVH... :cry:
    Mon souhait est de rediriger http://lafermeduchevalnnn.com vers http://www.lafermeduchevalnnn.com
     
  3. Tchouk
    Tchouk Nouveau WRInaute
    Inscrit:
    31 Juillet 2011
    Messages:
    18
    J'aime reçus:
    0
    Je suis sous OVH et j'ai rencontré également un tas de problème, mais ce code fonctionne bien :

    Code:
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]+$
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
     
  4. WebRankInfo
    WebRankInfo Admin
    Membre du personnel
    Inscrit:
    19 Avril 2002
    Messages:
    19 137
    J'aime reçus:
    350
    ce code fonctionne-t-il vraiment pour les domaines ayant une extension constituée de 2 parties, comme co.uk ?
     
  5. fredfan
    fredfan WRInaute accro
    Inscrit:
    2 Juillet 2008
    Messages:
    2 869
    J'aime reçus:
    2
    Logiquement il me semble que oui, mais je ne m'aventurerais pas à l'affirmer n'ayant pas ce genre de ndd.
    Par contre comme ce code semble remporter l'unanimité, ce serait bien de le mettre dans le premier post, et le code inverse qui se trouve un peu plus bas aussi.
     
  6. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 886
    J'aime reçus:
    0
    Non, ça ne marche effectivement pas pour domaine.co.uk, car la rewritecond dit "un groupe de caractères sauf le point puis un point, puis un groupe de caractères sauf le point"

    :wink:

    Quand à la règle qui pose problème il suffit de l'écrire de manière correcte et elle marche : :mrgreen:

    Code:
    RewriteCond %{HTTP_HOST} !^www\.exemple\.com$
    RewriteRule ^(.*)   http://www.exemple.com/$1  [QSA,L,R=301]
    Enfin, le probléme n'est pas le fait d'OVH mais vient de la configuration d'apache avec les regexp.
     
  7. WebRankInfo
    WebRankInfo Admin
    Membre du personnel
    Inscrit:
    19 Avril 2002
    Messages:
    19 137
    J'aime reçus:
    350
    tu aurais une version qui marche même pour ce genre de NDD ?
     
  8. fandecine
    fandecine WRInaute passionné
    Inscrit:
    2 Avril 2005
    Messages:
    1 886
    J'aime reçus:
    0
    Ceci marche très bien :

    Code:
    RewriteCond %{HTTP_HOST} !^www\.exemple\.co\.uk$
    RewriteRule ^(.*)   http://www.exemple.co.uk/$1  [QSA,L,R=301]
    Il faut noter que le code qui ne marche pas n'est pas du à l'absence du nom de domaine mais au fait que le '.' dans une regexp est un caractère spécial qu'il faut échapper comme ceci '\.' si on veut signifier que c'est le caractère '.'

    Si tu veux une régle universelle pour un domaine avec double extension c'est plus compliqué car le nombre de cas à prendre en compte est plus important; par exemple ceci :

    Code:
    RewriteCond %{HTTP_HOST} ^[^.]+\.[^.]{2}\.[^.]{2}$
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
    peut se lire "un groupe de caractères sauf le point suivit d'un point puis d'un groupe de 2 caractères sauf le point puis d'un groupe de 2 caractères sauf le point. Donc à fonctionne pour domaine.co.uk mais ne fonctionne plus pour xx.fr par exemple ni pour domaine.gov.uk.

    Mais je certifie que la règle que je donne avec le nom de domaine en clair fonctionne dans tous les cas si on n'oublie pas d'échapper les '.' :wink:
     
  9. WebRankInfo
    WebRankInfo Admin
    Membre du personnel
    Inscrit:
    19 Avril 2002
    Messages:
    19 137
    J'aime reçus:
    350
    on est bien d'accord, merci.
     
  10. fredfan
    fredfan WRInaute accro
    Inscrit:
    2 Juillet 2008
    Messages:
    2 869
    J'aime reçus:
    2
    Merci pour ces explications supplémentaires :)
     
  11. sophieplaya
    sophieplaya WRInaute discret
    Inscrit:
    4 Mars 2009
    Messages:
    95
    J'aime reçus:
    0
    Je rouvre ce sujet car je ne suis pas très forte en syntaxe....

    je dois rediriger un sous domaine vers un domaine/repertoire, c'est bien comme ça que ça doit s'écrire ?

    RewriteCond %{HTTP_HOST} !^es.mareazul.com$
    RewriteRule ^(.*) http://www.mareazul.com/condos-playa-del-carmen/$1 [QSA,L,R=301]

    Merci !
     
  12. sophieplaya
    sophieplaya WRInaute discret
    Inscrit:
    4 Mars 2009
    Messages:
    95
    J'aime reçus:
    0
    Pardon, j'avais d'autres fichiers qui interféraient !!

    J'ai résolu mon problème, le code marche très bien !!
     
  13. blacksangel
    blacksangel Nouveau WRInaute
    Inscrit:
    21 Août 2010
    Messages:
    5
    J'aime reçus:
    0
    salut tous le monde

    s'il vous plait je veux faire une redirection monsite.com vers www.monsite.com

    quand j'ajoute le code :
    Code:
    RewriteCond %{HTTP_HOST} !^www.example.com$ 
    RewriteRule ^(.*)   http://www.example.com/$1  [QSA,L,R=301]
    
    il me donne un erreur :

    bon voilà le contenu de mon fichier .htaccess

    Code:
    RewriteEngine on
    RewriteBase /
    RewriteCond $1 !^(index\.php|images|sitemap\.xml|sitemap\.xml.gz|uploads|js|css|covers|captcha|calendar|widget|modal|src|trafficlogs|robots\.txt)
    RewriteRule ^(.*)$ index.php/$1 [L]
    

    Merci pour votre aide
     
  14. blacksangel
    blacksangel Nouveau WRInaute
    Inscrit:
    21 Août 2010
    Messages:
    5
    J'aime reçus:
    0
    J'ai trouver la solution

    Merci
     
  15. Elianora la blanche
    Elianora la blanche Nouveau WRInaute
    Inscrit:
    20 Juillet 2010
    Messages:
    45
    J'aime reçus:
    0
    bonjour à tous !

    dans le cadre de mon projet actuel, je voudrais aussi utiliser cette solution seulement, j'ai 2 noms de domaines qui pointent vers la même application (gérés par vhost)
    techniquement, on a accès aux vhost mais, pour des raisons pratiques, on aimerait faire ces redirections dans le htaccess

    comment faire pour rediriger ndd1.com vers www.ndd1.com sans empiéter sur www.ndd2.com ? sachant que ndd2.com doit rediriger vers www.nddd2.com

    merci d'avance
     
  16. Lomic2
    Lomic2 WRInaute discret
    Inscrit:
    5 Mai 2008
    Messages:
    85
    J'aime reçus:
    0
    Bonjour à tous,

    je chercher à cumuler la redirection "sans www" vers "avec www" et le .htaccess de WordPress:

    Méthode WRI :
    Code:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^example\.com [NC]
    RewriteRule (.*) http://example.com/$1 [QSA,R=301,L]
    .htaccess WordPress:
    Code:
    SetEnv PHP_VER 5_4
    SetEnv REGISTER_GLOBALS 0
    
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    # END WordPress
    Le site visé est : http://egcampshare.com/ à rediriger de façon permanente en http://www.egcampshare.com/

    J'aurais pensé modifier la dernière RewriteRule :
    Code:
    RewriteRule . /index.php [L]
    en
    Code:
    RewriteRule .  http://www.egcampshare.com/index.php [L]
    mais ça ne fonctionne pas comme je le souhaite, ça me fait même une boucle de redirection.

    Merci pour vos avis ;)
     
  17. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 371
    J'aime reçus:
    2
    Tu ne modifies rien tu places simplement les trois lignes avant le bloc wordpress
     
  18. ph.gras
    ph.gras WRInaute discret
    Inscrit:
    19 Mai 2011
    Messages:
    89
    J'aime reçus:
    0
    Je n'utilise pas les règles de réécriture d'URL, mais un truc nettement plus simple :
    Code:
    <VirtualHost *:80>
            ServerAdmin contact@monsite.tld
    # mon adresse du site en production :
            ServerName www.monsite.tld
    # redirection 301 des sous domaine vers www.monsite.tld :
            ServerAlias monsite.tld
    # Ouais, mais finalement je veux tout sur un autre NDD :
            RedirectPermanent / http://www.autre-site.tld
    […]
    Je pense que ça doit facilement s'adapter sur un .htaccess en ne copiant pas la balise.
     
  19. Lomic2
    Lomic2 WRInaute discret
    Inscrit:
    5 Mai 2008
    Messages:
    85
    J'aime reçus:
    0
    tu veux dire quelque chose comme ça?
    Code:
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^example\.com [NC]
    RewriteRule (.*) http://www.example.com/$1 [QSA,R=301,L]
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    # END WordPress
    j'ai besoin de la version de PHP et du register_globals et à vérifier mais il me semble avoir déjà testé cette option :
    Code:
    SetEnv PHP_VER 5_4
    SetEnv REGISTER_GLOBALS 0
    RewriteEngine On
    RewriteCond %{HTTP_HOST} !^example\.com [NC]
    RewriteRule (.*) http://www.example.com/$1 [QSA,R=301,L]
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    # END WordPress
    sans succès ou plutôt avec une boucle de redirection en résultat. Que je comprend de la façon suivante : l'astuce WRI redirige tout vers http://www.example.com, et les lignes de WP redirigent tout vers /index.php qui est redirigé à son tour par les lignes proposées par WRI et ça tourne en rond comme ça

    pour ça qu'au départ je pensais modifier juste la dernière RewriteRule du bloc WordPress pour mixer les 2 et éviter une redirection d'un côté qui s'enchaîne sur l'autre ensuite (au risque de boucler)
     
  20. chocowe
    chocowe Nouveau WRInaute
    Inscrit:
    19 Juin 2013
    Messages:
    1
    J'aime reçus:
    0
    Bonjour,

    qu'en est-il du référencement Google? Mon site est indexé sous le nom chocowe.com mais j'ai ensuite activé mon site et soumis mon sitemap sous le nom www.chocowe.com est-ce un problème? Que dire de http://chocowe.com et http://www.chocowe.com ?

    Merci de vos réponses

    Chocowe
     
  21. jeanredac
    jeanredac Nouveau WRInaute
    Inscrit:
    4 Janvier 2014
    Messages:
    17
    J'aime reçus:
    0
    Bonsoir à tous,

    j'esère que je ne parasite pas le post ! Au lieu d'en créer un nouveau, je préfère poser ma question ici.

    Alors mon fichier d'origine .htacess se présente comme cela :

    Code:
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    # END WordPress
    En le modifiant que dois-je obtenir ce-ci:

    Code:
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    
    Options +FollowSymlinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^seo-redaction.com$
    RewriteRule ^(.*) http://www.seo-redaction.com/$1 [QSA,L,R=301]
    </IfModule>
    
    # END WordPress
    
    OU CELA :

    Code:
    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    Options +FollowSymlinks
    RewriteEngine on
    RewriteCond %{HTTP_HOST} ^seo-redaction.com$
    RewriteRule ^(.*) http://www.seo-redaction.com/$1 [QSA,L,R=301]
    </IfModule>
    
    # END WordPress
    
    En fait je ne suis pas certain de devoir créer ou pas un espace entre ''Options +FollowSymlinks'' et ''RewriteRule . /index.php [L]''.

    Désolé si cette question peut paraite anodine. Mais je souhaite bien faire les choses.

    Merci à vous.
     
  22. Marie-Aude
    Marie-Aude WRInaute accro
    Inscrit:
    5 Juin 2006
    Messages:
    16 371
    J'aime reçus:
    2
    tu ferais mieux de mettre tes règles avant le paquet Wordpress
     
  23. jeanredac
    jeanredac Nouveau WRInaute
    Inscrit:
    4 Janvier 2014
    Messages:
    17
    J'aime reçus:
    0
    Merci Marie-Aude pour cette réponse.

    Malheuresuement elle est totalement incompréhensible pour moi. Je suis novice dans le domaine . C'est ce forum entre autre ainsi que d'autres documentations qui m'ont aidé. Pourais tu m'expliquer comme je dois procéder ?
     
  24. jeanredac
    jeanredac Nouveau WRInaute
    Inscrit:
    4 Janvier 2014
    Messages:
    17
    J'aime reçus:
    0

    C'est bon j'ai pu m'en sortir et tu m'as envoyé sur la bonne voie ! Merci beaucoup ! J'ai ajouté des règles pour la sécrité et autre.
     
  25. Maestro64
    Maestro64 Nouveau WRInaute
    Inscrit:
    23 Mai 2014
    Messages:
    1
    J'aime reçus:
    0
    Bonjour à tous,

    Voilà j'ai suivi les conseils, j'ai essayé les 3 possibilités qui étaient proposées, mais aucune d'entre elles ne fonctionnent pour moi.
    Voilà le code que j'ai rajouté, au début du .htaccess comme conseillé :
    Code:
    RewriteEngine on
    Rewritecond %{HTTP_HOST} ^easy-competences.com$
    Rewriterule ^(.*) http://www.easy-competences.com/$1 [QSA,L,R=301]
    
    Le code semble bon, je ne sais pas si c'est le tirait qui pose problème. Un conseil ?

    Merci d'avance
     
  26. loubet
    loubet WRInaute impliqué
    Inscrit:
    19 Février 2003
    Messages:
    793
    J'aime reçus:
    0
    comme le site renvoie sur le webmail d'ovh, c'est plutôt dans la configuration du nom de domaine chez ovh qu'il faut regarder.
     
  27. Anthony69400
    Anthony69400 Nouveau WRInaute
    Inscrit:
    15 Septembre 2014
    Messages:
    1
    J'aime reçus:
    0
    Bonjour,

    Tout d'abord merci pour cette discussion très enrichissante !

    Ensuite ma question idiote : est-ce que ce bout de code permet de rediriger toutes les urls d'un site ?

    Merci

    Anthony
     
  28. WebRankInfo
    WebRankInfo Admin
    Membre du personnel
    Inscrit:
    19 Avril 2002
    Messages:
    19 137
    J'aime reçus:
    350
    Oui ou presque (toutes celles du sous-domaine)
     
  29. stratosphere
    stratosphere Nouveau WRInaute
    Inscrit:
    3 Janvier 2017
    Messages:
    2
    J'aime reçus:
    0
    Bonjour,

    J'ai suivi vos conseils et créé un fichier .htaccess avec le code suivant :
    Code:
    RewriteEngine on
    Rewritecond %{HTTP_HOST} ^monsite.fr$
    Rewriterule ^(.*) http://www.monsite.fr/$1 [QSA,L,R=301]
    Quand je tape dans la barre d'adresse monsite.fr je suis alors redirigé vers www.monsite.fr/www/ et j'ai une erreur 404
    Not Found
    The requested URL /www/ was not found on this server

    Savez-vous d'où vient ce problème ?
     
  30. stratosphere
    stratosphere Nouveau WRInaute
    Inscrit:
    3 Janvier 2017
    Messages:
    2
    J'aime reçus:
    0
    Problème résolu :
    j'avais placé le fichier .htaccess à la racine du site et non dans le dossier www
     
Chargement...
Similar Threads - Interdire example obliger Forum Date
Interdire example.com et obliger www.example.com URL Rewriting et .htaccess 30 Juillet 2010
Néfaste au référencement : interdire aux visiteurs US ? Problèmes de référencement spécifiques à vos sites Mardi à 09:27
L'attribut data-nosnippet pour interdire des textes dans les snippets Référencement Google 26 Septembre 2019
Interdire téléchargement fichiers Demandes d'avis et de conseils sur vos sites 18 Juillet 2019
Ai-je le droit d'interdire le partage du lien de ma chaîne YouTube(pour une raison quelconque). YouTube, Google Images et Google Maps 16 Décembre 2018
Interdire le crawl d une partie du site Débuter en référencement 15 Octobre 2018
Interdire indexation d'un contenu Administration d'un site Web 11 Septembre 2017
Comment interdire le crawl des pages de faibles valeurs (Noindex ; Nofollow ; Disallow ?) Débuter en référencement 22 Mars 2017
Interdire l'accès au un site aux concurrents Droit du web (juridique, fiscalité...) 30 Janvier 2017
interdire l'accés de certains pays avec le ht.access URL Rewriting et .htaccess 15 Mai 2016
  1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies.
    Rejeter la notice