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 :

Redirection sur un virtual host par défaut


Sujet :

Apache

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut Redirection sur un virtual host par défaut
    Bonjour,

    j'ai une configuration Apache2 avec Vhost
    Le problème est quand je rentre l'url "http://site.domaine.net"
    le sous-domaine "site" n'existant pas et j'obtiens bien la page correspondant à mon site, comme si j'avais saisi l'url "http://www.domaine.net"

    Mais dans la barre d'adresse l'url reste sur "http://site.domaine.net"

    N'y aurait il pas un defaut dans ma config ?
    Pour l'instant je ne peux tester qu'en "local" avec le fichier "host" de Windows

    Merci d'avance

  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
    Non, il n'y a pas de défaut : à aucun moment, Apache ne va rediriger le navigateur parce qu'on ne le lui demande pas. Qu'est-ce que tu voudrais voir arriver en tapant http://site.domaine.net ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Non, il n'y a pas de défaut : à aucun moment, Apache ne va rediriger le navigateur parce qu'on ne le lui demande pas. Qu'est-ce que tu voudrais voir arriver en tapant http://site.domaine.net ?
    Bonsoir,
    Je souhaiterai qu'il y ai justement une redirection vers "http://www.domaine.net"
    J'ai essayé de faire un vhost _defaut_ avec un redirect / http://www.domaine.net, mais ça n'a pas l'air de fonctionner ...

  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
    Il y a quoi exactement, dans ce virtual host ? Quelle conf Apache ? Mettre simplement Redirect ... n'est pas suffisant.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Il y a quoi exactement, dans ce virtual host ? Quelle conf Apache ? Mettre simplement Redirect ... n'est pas suffisant.
    Voilà le contenu des vhost :
    Je ne met pas les 40 lignes du httpd.conf ...

    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
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    NameVirtualHost *
    <VirtualHost *>
        ServerAdmin admin@domaine.net
        DocumentRoot "E:/domaine/www/"
        ServerName www.domaine.net
        <Directory "E:/domaine/www">
          Options Indexes FollowSymLinks MultiViews
          AllowOverride All
          Order allow,deny
          Allow from all
          php_admin_value session.name MYSESSID
        </Directory> 
    #
      Alias /phpmyadmin/ "E:/domaine/phpmyadmin/"
    	<Directory "E:/domaine/phpmyadmin/">
    		Options None
    		AllowOverride None
    		Order allow,deny
    		Allow from all
    	</Directory>
    #
      Alias /phpwebadmin/ "E:/domaine/PHPWebAdmin/"
    	<Directory "E:/domaine/PHPWebAdmin/">
    		Options None
    		AllowOverride None
    		Order allow,deny
    		Allow from all
    	</Directory>
    #
    	Alias /webmail/ "E:/domaine/webmailv2/"
            <Directory "E:/domaine/webmailv2/">
                    Options None
                    AllowOverride None
                    Order allow,deny
                    Allow from all
            </Directory>
    #
      <Directory "E:/domaine/www/cgi-bin">
    		AllowOverride All
    		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    		Order allow,deny
    		Allow from all
    		AddHandler cgi-script cgi pl
    	</Directory>
    #
    	Alias /awstatscss/ "E:/domaine/www/stats/css/" 
    	Alias /awstatsicons/ "E:/domaine/www/stats/icon/" 
    	ScriptAlias /awstats/ "E:/domaine/www/stats/cgi-bin/" 
    # 
    # This is to permit URL access to scripts/files in AWStats directory. 
    # 
    	<Directory "E:/domaine/www/stats/cgi-bin"> 
    		AllowOverride All
    		Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
    		Order allow,deny
    		Allow from all
    		AddHandler cgi-script cgi pl
    	</Directory>
    #
    <FilesMatch "^\.ht">
        Order allow,deny
        Deny from all
        Satisfy All
    </FilesMatch>
    #
    </VirtualHost>
    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
    26
    27
    <VirtualHost *>
        ServerAdmin admin@domaine.net
        DocumentRoot "E:/sites/nicole/www/"
        ServerName nicole.domaine.net
    #
    <Directory E:/sites/nicole/www/>
       Options Indexes FollowSymLinks MultiViews
       AllowOverride All
       Order allow,deny
       allow from all
    </Directory>
    #
    AccessFileName .htaccess
    #
    <Files ~ "^\.ht">
        Order allow,deny
        Deny from all
    </Files>
    #
    ErrorLog logs/nicole.domaine.net-error.log
    LogLevel warn
    CustomLog logs/nicole.domaine.net-access.log combined
    ServerSignature Off
    #
    php_admin_value open_basedir "E:/sites/nicole/www/"
    #php_admin_value disable_functions = chgrp, chmod, chown, chroot, closelog, dir, disk_free_space, disk_total_space, dl, exec, filter_list, flock, get_current_user, getmypid, getmyuid, glob, imagerotate, ini_alter, ini_restore, ini_set, leak, link, listen, mysql_list_dbs, openlog, passthru, pclose, phpinfo, php_uname, popen, proc_close, proc_get_status, proc_open, proc_terminate, putenv, restore_include_path, rmdir, set_include_path, set_time_limit, shell_exec, sleep, socket_accept, socket_create_listen, socket_listen, symlink, syslog, system, tmpfile, umask, unlink
    </VirtualHost>

  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
    Quand tu tapes http://site.domaine.net (donc aucun des 2 VH : ni http://www.domaine.net ni http://nicole.domaine.net), tu tombes sur la conf par défaut d'Apache, donc en dehors des 2 VH. Il faut définir une règle générale qui dit "quand on tombe sur la conf par défaut, redirige sur www.domaine.net". Donc, en dehors de tes 2 VH, ajoute ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule .* http://www.domaine.net/ [R,L]

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteEngine on
    RewriteRule .* http://www.domaine.net/ [R,L]
    Je mets ces lignes dans le .htaccess à la racine du site, c'est ça ?
    Il n'y a pas moyen de faire une redirection via la conf d'Apache ?

  8. #8
    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
    Dans httpd.conf, mais en dehors des deux blocs <VirtualHost>, par exemple tout en bas du fichier.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Dans httpd.conf, mais en dehors des deux blocs <VirtualHost>, par exemple tout en bas du fichier.
    J'ai donc mis les lignes en fin de httpd.conf, après les includes des vhost mais rien ne se passe ...
    J'ai toujours dans la barre d'adresse : http://nexistepas.domaine.net/
    Alors, j'ai essayé une autre solution :
    Ajout d'un vhost par defaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <VirtualHost _default_:*>
    #        DocumentRoot "E:/domaine/www/"
    #        ServerName www.domaine.net
            ErrorLog "logs/error.log"
            CustomLog "logs/access.log" combined
            redirect / http://www.domaine.fr/
    </VirtualHost>
    Idem à la première solution !

  10. #10
    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
    Retire mes lignes si ce n'est pas déjà fait, on va tenter autre chose.

    Tu dis que quand on tape http://nexistepas.domaine.net/, on tombe sur le site qui se trouve dans E:/domaine/www/ ? Que vaut la directive DocumentRoot principale de httpd.conf (celle qui n'est pas dans un VH) ?

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Que vaut la directive DocumentRoot principale de httpd.conf (celle qui n'est pas dans un VH) ?
    Pour le test de redirection je l'avais mis en commentaire, sinon elle est identique au VH principal (E:/domaine/www) sans le slash de fin

  12. #12
    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
    Ah... Difficile de savoir quelle conf Apache utilise quand tu faishttp://nexistepas.domaine.net/. Dans ce cas, est-ce que tu peux mettre la conf suivante dans le VH principal (avant le premier <Directory> par exemple) et la conf principale d'Apache (là où tu avais mis avant mes anciennes lignes) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    RewriteEngine on
    RewriteCond %{HTTP_HOST} !^www\.domaine\.net$
    RewriteRule .* http://www.domaine.net/ [R,L]

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    merci,
    ça fonctionne nickel cette fois !

    Je ne suis pas trop à l'aise avec la syntaxe du rewriting ...
    La ligne suivante, c'est bien un test sur le sous-domaine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteCond %{HTTP_HOST} !^www\.domaine\.net$
    Mais une petite question :
    Pourquoi mettre les lignes dans le httpd.conf ?
    Dans le VH principal seulement n'aurait pas suffit ?
    Je testerai à l'occasion ...

    Merci encore

  14. #14
    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
    Oui, un test sur le sous-domaine www.

    Après, si, certainement que mettre dans le VH principal suffit. C'est ce que je voulais déterminer en posant la question sur le DocumentRoot principal mais vu que c'est le même que le VH principal, je n'ai pas pu voir clairement où il fallait mettre les lignes. Mais comme le premier test a échoué, je pense qu'effectivement seules les lignes du VH principal sont utiles.

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    Seul un petit problème vient d'apparaitre

    J'ai un module perl (récup des stats d'apache) qui fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my @status = split/\n/, get('http://192.168.10.3:80/server-status');
    en rapport avec le code du httpd.conf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      <Location /server-status>
      SetHandler server-status
      Order Deny,Allow
      Deny from All
      Allow from 192.168.10.3
      </Location>
    Comment et est ce possible de rajouter un rewritecond et la regle pour cette exception ?

  16. #16
    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
    Ben tu rajoutes le RewriteCond qui va bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteCond %{HTTP_HOST} !^192\.168\.10\.3
    A mettre en dessous de celui qui existe déjà et avant le RewriteRule.

  17. #17
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    OK, mais j'etais pas certain
    merci encore !

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

Discussions similaires

  1. Redirection avec les virtual hosts
    Par alex_17 dans le forum Apache
    Réponses: 1
    Dernier message: 22/09/2009, 23h56
  2. pas de permission sur un virtual host
    Par Zen_Fou dans le forum Apache
    Réponses: 8
    Dernier message: 25/08/2008, 09h38
  3. imprimer un PDF sur une imprimante non par défaut
    Par bremer dans le forum Langage
    Réponses: 5
    Dernier message: 25/12/2007, 22h46
  4. PS sur tables de schémas par défaut
    Par clesaffr dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 24/04/2007, 16h04

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