Forum Linux.général apache 1.33: afficher l'url correspondant au nom de domaine ... comment?

Posté par  (site web personnel) .
Étiquettes :
0
15
mar.
2007
Bonjour,

l'URL de mon site web se presente dans la barre d'adresse ainsi qu'il suit: http://www.univ-ouaga.bf/html/uo/, alors que je voudrais que ce soit l'url suivante qui s'affiche: http://www.univ-ouaga.bf/

Le contexte: j'utilise "Apache/1.3.33" sur debian 3.1; le dossier racine est le www, et mon site web se trouve ici www/html/uo.

Voici les manipulation que j'ai effectué, et que j'espérais parfaites: dans le dossier www, j'ai placé un fichier index.html qui redirige automatiquement le navigateur vers www/html/uo/index.php, tout cela pour éviter de placer le fichier index.php directement dans le dossier www. En procédant ainsi, c'est à dire en plaçant le fichier index.php directement dans www, lorsque l'on saisit l'url du site web http://www.univ-ouaga.bf/ elle demeure telle quel (ce que je souhaite!).
Compte tenu de mon contexte énoncé ci-haut, y'a t'il un moyen de faire en sorte qu'en saisissant l'url http://www.univ-ouaga.bf/ on garde la même url dans la barre d'adresse? Merci
  • # httpd.conf

    Posté par  (site web personnel) . Évalué à -1.

    Salut,

    Une solution possible serait sans doute de déclarer dans ton httpd.conf que le fichier que tu veux utiliser par défaut comme index du répertoire "/" est celui dont tu parles. Ce qui devrait si je ne m'abuse (pas de Apache à portée de main) se retranscrire par :

    <Directory / >
      DirectoryIndex /html/uo/index.php
    </Directory>

    Bon courage.
    • [^] # Re: httpd.conf

      Posté par  . Évalué à 2.

      Non, le DirectoryIndex est le nom du fichier d'index par répertoire (index.html ou index.php ou autre). C'est DocumentRoot qu'il faut changer.

      Dans httpd.conf :
      DocumentRoot /chemin/complet/vers/html/uo

      Par contre s'il y a des pages dans d'autres répertoires, elles ne seront plus accessibles. Une autre solution pourrait être d'utiliser des frames en HTML.
      • [^] # Re: httpd.conf

        Posté par  (site web personnel) . Évalué à 1.

        Non (moi aussi je peux le dire ;o)

        Si je me fie à la doc Apache : http://httpd.apache.org/docs/1.3/mod/mod_dir.html#directoryi(...) je constate que ce que je disais est tout à fait possible, notamment s'il veut déporter sont index dans un autre répertoire.

        Il ne semblait pas vouloir changer de DocumentRoot (s'il a un répertoire html, ça veut sans doute dire qu'il y en a d'autres au même niveau)
        • [^] # Re: httpd.conf

          Posté par  (site web personnel) . Évalué à 0.

          En n'oubliant pas que toutes les références côté client (images, js, etc...) devront bien préciser les chemins depuis la racine, et pas relativement au répertoire html/uo

          (erratum : sont -> son)
  • # Re VirtualHost & DocumentRoot

    Posté par  (site web personnel) . Évalué à 4.

    Tu as plusieurs solutions,

    1/ tres simple:
    Tu change la racine de ton serveur web.
    Recherche une ligne:
    DocumentRoot /var/www/
    Dans ton httpd.conf et change la pour:
    DocumentRoot /var/www/html/uo

    Rq: quitte à faire cela autant déplacer les fichiers depuis /var/www/html/uo vers /var/www

    2/ plus propre: création d'un virtual host pour ton domaine
    univ-ouaga.bf:
    Crée le fichier /etc/apache/conf.d/virtual-uo.conf avec le contenu suivant
    ---8<------
    NameVirtualHost *
    <VirtualHost *>
    ServerAdmin webmaster@localhost
    ServerName www.univ-ouaga.bf
    # ServerAlias univ-ouaga.bf

    DocumentRoot /var/www/html/uo


    Options FollowSymLinks
    AllowOverride None

    <Directory /var/www/html/uo>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all

    DirectoryIndex index.php


    ErrorLog /var/log/apache2/error.log
    LogLevel warn
    CustomLog /var/log/apache2/access-uo.log combined
    ServerSignature On
    </VirtualHost>
    --8<--------------------

    3/ Plus complexe:
    ré-écriture d'url avec mod_rewrite.

    Si tu ne fait pas d'hebergement de masse c'est pas vraiment utile.


    Ps: c'a fait un peu "Renault R5" ton chemin /var/www/html/uo
    • [^] # Re: Re VirtualHost & DocumentRoot

      Posté par  (site web personnel) . Évalué à 1.

      Bonsoir,

      merci à tous pour vos différentes réponses. Effectivement comme le dit moggle, je ne souhaite pas changer le repertoire racine de mon serveur, car il contient d'autres sites web. Ainsi que me l'a proposé "Benoit Plessis" j'ai tenté la création de l'hôte virtuel dans le fichier /etc/apache/conf.d/virtual-uo.conf avec ce contenu:

      NameVirtualHost *
      <VirtualHost *>
      ServerAdmin webmaster@localhost
      ServerName www.univ-ouaga.bf
      # ServerAlias univ-ouaga.bf

      DocumentRoot /var/www/html/uo

      Options FollowSymLinks
      AllowOverride None

      <Directory /var/www/html/uo>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Order allow,deny
      allow from all

      DirectoryIndex index.php

      ErrorLog /var/log/apache2/error.log
      LogLevel warn
      CustomLog /var/log/apache2/access-uo.log combined
      ServerSignature On
      </VirtualHost>


      puis j'ai voulu redémarrer le serveur apache, et j'ai obtenu le message d'erreur suivant:

      Syntax error on line 1 of /etc/apache/conf.d/virtual-uo.conf:
      Invalid command 'meVirtualHost', perhaps mis-spelled or defined by a module not included in the server configuration


      Comment résoudre cette erreur?

      Est il possible de créer l'hôte virtuel dans le fichier httpd.conf?, précisement dans cette partie:
      #<VirtualHost ip.address.of.host.some_domain.com>
      # ServerAdmin webmaster@host.some_domain.com
      # DocumentRoot /www/docs/host.some_domain.com
      # ServerName host.some_domain.com
      # ErrorLog logs/host.some_domain.com-error.log
      # CustomLog logs/host.some_domain.com-access.log common
      #</VirtualHost>
      ?

      Merci
      • [^] # Re: Re VirtualHost & DocumentRoot

        Posté par  . Évalué à 1.

        suffit de virer le
        NameVirtualHost *

        de ton fichier de virtual host
        • [^] # Re: Re VirtualHost & DocumentRoot

          Posté par  (site web personnel) . Évalué à 1.

          LoadModule rewrite_module modules/mod_rewrite.so
          AddModule mod_rewrite.c


          #Activation du module
          RewriteEngine on

          #Règles

          RewriteRule http://www.univ-ouaga.bf/html/uo/ http://www.univ-ouaga.bf/


          Bonjour,

          voici à présent comment se présente mon fichier /etc/apache/conf.d/virtual-uo.conf


          1- <VirtualHost *>
          2- ServerAdmin webmaster@localhost
          3- ServerName www.univ-ouaga.bf
          4- # ServerAlias univ-ouaga.bf
          5-
          6- DocumentRoot /var/www/html/uo
          7-
          8-
          9- Options FollowSymLinks
          10- AllowOverride None
          11-
          12- <Directory /var/www/html/uo>
          13- Options Indexes FollowSymLinks MultiViews
          14- AllowOverride None
          15- Order allow,deny
          16- allow from all
          17-
          18- DirectoryIndex index.php
          19-
          20- ErrorLog /var/log/apache2/error.log
          21- LogLevel warn
          22- CustomLog /var/log/apache2/access-uo.log combined
          23- ServerSignature On
          24- </VirtualHost>



          Lorsque je tente de redémarrer le serveur apache, j'obtiens les messages d'erreurs suivants:

          Syntax error on line 10 of /etc/apache/conf.d/virtual-uo.conf:
          AllowOverride not allowed here


          Lorsque je met en commentaire la ligne 10 AllowOverride None, et que je tente de rédemarrer le serveur apache, j'obtiens l'erreur suivante:

          Syntax error on line 20 of /etc/apache/conf.d/virtual-uo.conf:
          ErrorLog not allowed here


          Lorsque je met en commentaire la ligne 20 ErrorLog /var/log/apache2/error.log, et que je tente de rédemarrer le serveur apache, j'obtiens l'erreur suivante:

          Syntax error on line 21 of /etc/apache/conf.d/virtual-uo.conf:
          LogLevel not allowed here


          Lorsque je met en commentaire la ligne 21 LogLevel warn, et que je tente de rédemarrer le serveur apache, j'obtiens l'erreur suivante:
          Syntax error on line 22 of /etc/apache/conf.d/virtual-uo.conf:
          CustomLog not allowed here

          Lorsque je met en commentaire la ligne 22 CustomLog /var/log/apache2/access-uo.log combined, et que je tente de rédemarrer le serveur apache, j'obtiens l'erreur suivante:
          Syntax error on line 24 of /etc/apache/conf.d/virtual-uo.conf:
          </VirtualHost> not allowed here

          Lorsque je met en commentaire la ligne 24 </VirtualHost>, et que je tente de rédemarrer le serveur apache, j'obtiens l'erreur suivante:
          Syntax error on line 25 of /etc/apache/conf.d/virtual-uo.conf:
          Missing directive at end-of-file

          A la fin, mon fichier se présente ainsi qu'il suit:


          <VirtualHost *>
          ServerAdmin webmaster@localhost
          ServerName www.univ-ouaga.bf
          # ServerAlias univ-ouaga.bf

          DocumentRoot /var/www/html/uo


          Options FollowSymLinks
          #AllowOverride None

          <Directory /var/www/html/uo>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride None
          Order allow,deny
          allow from all

          DirectoryIndex index.php

          #ErrorLog /var/log/apache2/error.log
          #LogLevel warn
          #CustomLog /var/log/apache2/access-uo.log combined
          ServerSignature On
          #</VirtualHost>


          Lorsque je décommente tout et que je mets la balise <//Directory> à la ligne 19, je n'ai plus de message d'erreur! et mon fichier virtual-uo.conf devient:


          <VirtualHost *>
          ServerAdmin webmaster@localhost
          ServerName www.univ-ouaga.bf
          # ServerAlias univ-ouaga.bf

          DocumentRoot /var/www/html/uo


          Options FollowSymLinks
          #AllowOverride None

          <Directory /var/www/html/uo>
          Options Indexes FollowSymLinks MultiViews
          AllowOverride None
          Order allow,deny
          allow from all

          DirectoryIndex index.php
          <//Directory>
          ErrorLog /var/log/apache2/error.log
          LogLevel warn
          CustomLog /var/log/apache2/access-uo.log combined
          ServerSignature On
          </VirtualHost>
  • # deplacer ton site

    Posté par  . Évalué à 2.

    Une solution simple:
    Pourquoi ne pas déplacer ton site dans /var/www/monsite

    et avoir ds ton fichier de conf

    DocumentRoot /var/www/monsite
  • # passage a apache 2

    Posté par  (site web personnel) . Évalué à 1.

    Bonjour,

    j'ai effectué des changements: je suis passé à apache 2 maintenant. Je vais donc créer une autre discussion sur le même sujet, mais concernant apache2.
  • # réecriture d'url réussie, mais inconvénients majeures!

    Posté par  (site web personnel) . Évalué à 1.

    Bonjour,

    j'ai finallé désinstallé apache 1.33 et réinstallé apache2.
    L'écriture de l'URL de mon site web est à présent parfaite, mais a des convénients majeures: l'url du site web est http://www.univ-ouaga.bf.
    Or le domaine univ-ouaga.bf a des sous domaines auxquels correspondent des sites web; ainsi il existe plusieurs sites web qui ont pour url http://monSite.univ-ouaga.bf (monSite étant un alias crée dans le DNS, et non un hôte virtuel crée au niveau du serveur web apache comme on pourrait le croire). Actuellement, lorsque je saisi une url du type http://monSite.univ-ouaga.bf, c'est le site web http://www.univ-ouaga.bfqui s'affiche dans le navigateur. Comme faire donc pour que http://www.univ-ouaga.bf et tous les sites (il y'en a plusieurs) http://monSite.univ-ouaga.bf renvoient respectivement aux sites auxquels ils font référence? Merci.
    En rappel, selon les propositions de benoît plessis et john doe j'ai crée un hôte virtuel dans /etc/apache2/conf.d/virtual-uo.conf avec le code suivant:

    <VirtualHost *>
    ServerAdmin webmaster@localhost
    ServerName www.univ-ouaga.bf
    # ServerAlias univ-ouaga.bf

    DocumentRoot /var/www/html/uo


    Options FollowSymLinks
    #AllowOverride None

    <Directory /var/www/html/uo>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all

    DirectoryIndex index.php

    ErrorLog /var/log/apache2/error.log
    LogLevel warn
    CustomLog /var/log/apache2/access-uo.log combined
    ServerSignature On
    </VirtualHost>


    Mon avis sur la question: le problème vient peut-être de la définition de /var/www/html/uo en tant que DocumentRoot dans le fichier ci-dessus, alors que tous les sites web sont dans le dossier </var/www/html
    • [^] # Re: réecriture d'url réussie, mais inconvénients majeures!

      Posté par  (site web personnel) . Évalué à 1.

      Juste pour vous dire que j'ai trouvé la solution aux inconvénients dont j'ai parlé. Pour chaque site http://monSite.univ-ouaga.bf, j'ai crée un hôte virtuel dans le fichier /etc/apache2/conf.d/virtual-uo.conf

      Ainsi mon fichier /etc/apache2/conf.d/virtual-uo.conf se présente ainsi qu'il suit:

      <VirtualHost *>
      ServerAdmin webmaster@localhost
      ServerName www.univ-ouaga.bf
      # ServerAlias univ-ouaga.bf

      DocumentRoot /var/www/html/uo


      Options FollowSymLinks
      #AllowOverride None

      <Directory /var/www/html/uo>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Order allow,deny
      allow from all

      DirectoryIndex index.php

      ErrorLog /var/log/apache2/error.log
      LogLevel warn
      CustomLog /var/log/apache2/access-uo.log combined
      ServerSignature On
      </VirtualHost>


      <VirtualHost *>
      ServerAdmin webmaster@localhost
      ServerName monSite.univ-ouaga.bf
      # ServerAlias univ-ouaga.bf

      DocumentRoot /var/www/html/rep1/rep2


      Options FollowSymLinks
      #AllowOverride None

      <Directory /var/www/html/rep1/rep2>
      Options Indexes FollowSymLinks MultiViews
      AllowOverride None
      Order allow,deny
      allow from all

      DirectoryIndex index.php index.html

      ErrorLog /var/log/apache2/error.log
      LogLevel warn
      CustomLog /var/log/apache2/access-uo.log combined
      ServerSignature On
      </VirtualHost>


      Cela signifie t'il que si j'ai 100 sites à héberger sur mon serveur web, je dois créer 100 hôtes virtuels dans mon fichier. Est ce exact? Merci
      • [^] # Re: réecriture d'url réussie, mais inconvénients majeures!

        Posté par  (site web personnel) . Évalué à 2.

        Oui, ça veux dire que tu dois créer :
        - entrée dns pour le sous-domaine
        - virtualhost dans apache correspondant.

        Ici j'ai ça :
        00_default_vhost.conf
        # Use name-based virtual hosting.
        NameVirtualHost *:80

        # html dir perm
        <Directory /var/www/html>
        # Allow from all
        Order deny,allow
        Allow from all
        # Allow index and symlink
        Options Indexes SymLinksifOwnerMatch
        # Deny .htaccess
        AllowOverride None
        # Rewrite url
        <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteCond %{REQUEST_URI} !^/noexist_.*\.html$
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteCond %{REQUEST_URI} !/robots\.txt$
        RewriteRule ^.* index.php [L]

        RewriteCond %{REQUEST_URI} !^/noexist_.*\.html$
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule ^.* robots.txt [L]
        </IfModule>
        </Directory>

        # Default VirtualHost
        <VirtualHost _default_:80>
        #DocumentRoot
        DocumentRoot /var/www/html
        # Log level
        LogLevel warn
        # Show apache signature
        ServerSignature On
        </VirtualHost>

        01_example_vhost.conf
        # example alias
        <IfModule mod_alias.c>
        Alias /example /var/www/example
        </IfModule>

        # example directory rights
        <Directory /var/www/example>
        # Limit bandwith if mod_bw is avaible
        <IfModule mod_bw.c>
        #Enable module
        BandWidthModule On
        #Force limit
        ForceBandWidthModule On
        #Set no limit
        BandWidth all 0
        #Limit Large file > 10MB to 30KB/s max
        LargeFileLimit * 10240 30720
        </IfModule>
        # Allow from all
        Order deny,allow
        Allow from all
        # Allow index and symlink
        Options Indexes SymLinksifOwnerMatch
        # Deny .htaccess
        AllowOverride None
        </Directory>

        # example virtualhost
        <VirtualHost *:80>
        # Virtualhost domaine name
        ServerName example.example.com
        # DocumentRoot dir
        DocumentRoot /var/www/example
        # Log level
        LogLevel warn
        # Show apache signature
        ServerSignature On
        </VirtualHost>

        etc...

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.