IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

.com/.fr et www


Sujet :

Apache

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Par défaut .com/.fr et www
    Bonjour,

    Encore une lacune dans mes connaissances en administration de serveur apache.

    Je me pose la question du toto.com et www.toto.com.

    Sauf qu'en même temps, vient la question du : toto.com, toto.fr, www.toto.com et www.toto.fr

    Dans un premier temps, en tant que profane, j'ai créé deux virtual hosts différents, un pour le .com et un pour le .fr et j'ai géré ça en php derrière. (mais ça me dérangeais vraiment dans l'idée :p)

    Ensuite, j'ai utilisé l'instruction ServerAlias :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    <VirtualHost XX.XX.XX.XX:80>
        ServerName www.toto.com
        ServerAlias www.toto.fr toto.com toto.fr
        ServerAdmin toto@toto.com
        DocumentRoot "D:/website/www/toto/public"
        ErrorLog "D:/website/logs/www.toto.com-error_log"
        TransferLog "D:/website/logs/www.toto.com-access_log"
        <Location />
            # Règles de réécriture
            RewriteEngine On
            RewriteCond %{REQUEST_FILENAME} -s [OR]
            RewriteCond %{REQUEST_FILENAME} -l [OR]
            RewriteCond %{REQUEST_FILENAME} -d
            RewriteRule ^.*$ - [NC,L]
            RewriteRule ^.*$ index.php [NC,L]
        </Location>
        <Directory "D:/website/www/toto/public">
            #Options Includes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>
    Sauf que visiblement ça n'empêche pas les moteurs de voir ça comme du "duplicate content".

    J'ai donc appliqué les bonnes règles de ré-écritures pour faire une vraie et propre redirection, ex sur le .com :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    <VirtualHost XX.XX.XX.XX:80>
        ServerName www.toto.com
        ServerAdmin toto@toto.com
        DocumentRoot "D:/website/www/toto/public"
        ErrorLog "D:/website/logs/www.toto.com-error_log"
        TransferLog "D:/website/logs/www.toto.com-access_log"
        <Location />
            # Règles de réécriture
            RewriteEngine On
            RewriteCond %{HTTP_HOST} !^www\.toto\.com [NC]
            RewriteRule (.*) http://www.toto.com$1 [QSA,R=301,L]
            RewriteCond %{REQUEST_FILENAME} -s [OR]
            RewriteCond %{REQUEST_FILENAME} -l [OR]
            RewriteCond %{REQUEST_FILENAME} -d
            RewriteRule ^.*$ - [NC,L]
            RewriteRule ^.*$ index.php [NC,L]
        </Location>
        <Directory "D:/website/www/toto/public">
            #Options Includes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            Allow from all
        </Directory>
    </VirtualHost>
    Celà fonctionne très bien à deux exceptions près.

    La 1ère :

    Si je ne précise pas le ServerAlias pour les autres VHOSTS suivants celui là (qui est le premier du fichier), et que dans mon url je n'entre pas les www, je suis redirigé sur le site du premier VHOST du fichier de conf.
    Ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
        <VirtualHost XX.XX.XX.XX:80>
            ServerName www.titi.com
            ServerAdmin titi@titi.com
            DocumentRoot "D:/website/www/titi/public"
            ErrorLog "D:/website/logs/www.titi.com-error_log"
            TransferLog "D:/website/logs/www.titi.com-access_log"
            <Location />
                # Règles de réécriture
                RewriteEngine On
                RewriteCond %{HTTP_HOST} !^www\.titi\.com [NC]
                RewriteRule (.*) http://www.titi.com$1 [QSA,R=301,L]
                RewriteCond %{REQUEST_FILENAME} -s [OR]
                RewriteCond %{REQUEST_FILENAME} -l [OR]
                RewriteCond %{REQUEST_FILENAME} -d
                RewriteRule ^.*$ - [NC,L]
                RewriteRule ^.*$ index.php [NC,L]
            </Location>
            <Directory "D:/website/www/titi/public">
                #Options Includes FollowSymLinks MultiViews
                AllowOverride None
                Order allow,deny
                Allow from all
            </Directory>
        </VirtualHost>
    Si je ne rajoute pas la ligne "ServerAlias titi.com" http://titi.com me dirige vers http://www.toto.com.

    La 2ème, et là c'est une lacune de ma part :

    Je ne sais pas comment gérer les .com et .fr pour un même site.

    Enfin, question bonus, pouvez-vous critiquer mon VirtualHost et me dire ce qui vous choque s'il vous plait ? (sécurité par ex.)

    Merci beaucoup,


    A+ benjamin.


    Edit: A quoi sert le $1, dans ces lignes svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        RewriteCond %{HTTP_HOST} !^www\.toto\.com [NC]
        RewriteRule (.*) http://www.toto.com$1 [QSA,R=301,L]

    Parce que si je le laisse il veut me rediriger vers : http://www.toto.comd/website/www/toto/public

    Merci !

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Tu peux nous donner la définition complète de tes VH avec les NameVirtualHost ? S'il y a plusieurs IP, utilise des XX.XX..., YY.YY... pour faire la différence entre les adresses : c'est important de voir ce qui est semblable ou différent.

    Citation Envoyé par Delprog Voir le message
    Edit: A quoi sert le $1, dans ces lignes svp ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        RewriteCond %{HTTP_HOST} !^www\.toto\.com [NC]
        RewriteRule (.*) http://www.toto.com$1 [QSA,R=301,L]

    Parce que si je le laisse il veut me rediriger vers : http://www.toto.comd/website/www/toto/public
    $1 fait référence au groupe (.*). On voudrait que ce soit l'URL (/...) mais il se trouve que c'est le répertoire système. Je ne sais pas d'où ça vient vraiment mais j'ai cru remarqué que ce comportement vient du RewriteCond qui précède : quand il n'y a pas de RewriteCond, .* vaut bien l'URL et pas le répertoire. Pour corriger, fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        RewriteCond %{HTTP_HOST} !^www\.toto\.com [NC]
        RewriteRule (.*) http://www.toto.com%{REQUEST_URI} [QSA,R=301,L]

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Par défaut
    Il n'y pour l'instant qu'une seule adresse IP pour ce serveur et donc un seul namevirtualhost
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    NameVirtualHost 83.206.xx.xx:80
    Tous les domaines/sous-domaines sont donc redirigés vers cette unique IP.

    En réalité il existe une autre adresse ip, que j'utilise pour mes versions de test avant mise en prod, et là j'utilise des alias + un unique sous-domaine, donc c'est bien distinct des mes virtual hosts.

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Franchement, je suis sec, je n'ai aucune idée

    Juste un truc : quand tu fais tes tests, tu vides bien ton cache navigateur ? Tu fais des redirections permanentes qui sont mises en cache dans le navigateur, ça peut induire des comportements étranges.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Par défaut
    En dev je désactive le cache navigateur totalement, il recharge donc tout à chaque fois.

    Je le fais grâce à l'addon Web Developer pour firefox.

    C'est très bizarre, et de plus je ne sais pas comment je dois gérer mes virtual hosts lorsque j'ai un .fr et un .com pour le même site, sans faire du duplicate content.

    Je ne suis pas le seul dans ce cas quand même ? Comment écrivez-vous vos virtual hosts dans le cas d'un site possédant un .com, un .fr et devant être accessible avec ou sans www dans les deux cas.

    J'ai même envie de dire que c'est le classique de chez classique :p


    A+ benjamin.

  6. #6
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Par défaut
    Je ne sais pas trop. Peut-être que le plus simple c'est de faire des VH pour gérer les redirections. Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <VirtualHost *:80>
        ServerName www.levraisite.com
        # ATTENTION !! SOURCE DE DUPLICATE CONTENT
        ServerAlias levraisite.com
        ...
    </VirtualHost>
     
    <VirtualHost *:80>
        ServerName www.lesite.fr
        ServerAlias lesite.fr
        RedirectPermanent / http://www.levraisite.com/
    </VirtualHost>
     
    <VirtualHost *:80>
        ServerName www.lesite.org
        ServerName lesite.org
        RedirectPermanent / http://www.levraisite.com/
    </VirtualHost>
    Si j'ai bien tout lu et compris le Web (mais je peux me tromper), un ServerAlias va obligatoirement engendrer du duplicate content. Donc si tu ne veux pas faire de redirection, tu auras obligatoirement du duplicate content.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comprendre la différence entre http://example.com et http://www.example.com
    Par zarathoustra69 dans le forum Général Conception Web
    Réponses: 1
    Dernier message: 19/12/2012, 23h55
  2. Réponses: 1
    Dernier message: 24/01/2011, 15h09
  3. Liens ne fonctionnent pas avec monsite.com mais avec www.monsite.com
    Par mickey83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 24/04/2010, 10h06
  4. Réponses: 2
    Dernier message: 27/01/2010, 15h21
  5. Réponses: 4
    Dernier message: 16/05/2008, 01h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo