Mod_rewrite, sous domaines et Google

WRInaute occasionnel
Bonjour,

J'ai pris un serveur dedié chez Sivit (Apache 1.3.33). Pour que tous mes repertoires soit automatiquement des sous domaines (/home/web/mondomaine/www/ = www.mondomaine.tld, /home/web/mondomaine/toto/ = toto.mondomaine.tld, etc) on m'a conseillé d'utiliser la methode suivante (grace au mod_rewrite) :

Code:
<VirtualHost 100.100.100.100>
  ServerAdmin Mail@domaine.tld
  ServerName domaine.tld
  ServerAlias *.domaine.tld
  DocumentRoot /home/votre-compte/www
  php_admin_value doc_root /home/votre-compte
  php_admin_value open_basedir /home/votre-compte
  php_admin_value upload_tmp_dir /home/votre-compte/.tmp
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^(www.)?([^.]+).domaine.tld
  RewriteCond %{DOCUMENT_ROOT}/%2 -d
  RewriteCond %{REQUEST_URI} !^/icons/
  RewriteCond %{REQUEST_URI} !^/cgi-bin/
  RewriteRule ^(.*) /%2/$1 [L]
  ScriptAlias /cgi-bin/ /home/votre-compte/cgi-bin/
</VirtualHost>

Est ce que vous pouvez me confirmer que google verra bien ici des sites differents pour chaque sous domaine, ou bien est-ce une redirection que Google detectera et assimilera donc tous les sous domaines au meme site ?

Merci d'avance pour votre aide,
Robin
 
Nouveau WRInaute
Pour créer des sous-domaines automatiques, tu devrais plutôt utiliser le module vhost_alias, et le VirtualDocumentRoot vu que tu as la main-mise sur Apache.

Parce qu'enquiller les conditions comme tu le fais ne semble pas vraiment efficace.

A+

Dan
 
WRInaute occasionnel
Merci pour ta reponse,

Oui au debut j'avais ca :

Code:
<VirtualHost *> 
    DocumentRoot /home/web/mondomaine
    ServerName mondomaine.com 
    ServerAlias *.mondomaine.com 
    VirtualDocumentRoot /home/web/mondomaine/%1 
    <Directory "/home/web/mondomaine"> 
        allow from all 
        Options +Indexes 
    </Directory> 
</VirtualHost>

Et j'avai un message d'erreur lorsque j'essayai de redemarrer apache, alors on m'a dit d'activer le module mod_vhost_alias, mais le probleme c'est que je ne sais pas comment on installe un module apache :oops:

Robin
 
WRInaute impliqué
Tout dépend comment il est compilé, mais en général, il suffit de décommenter la ligne en enlevant le #:
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so

Et bien sur voir si mod_vhost_alias.so est bien dans la directorie des modules. Sinon, tu peux aussi recompiler Apache avec le module en c.
Voila :)
 
WRInaute occasionnel
Bonjour,
Merci pour ta reponse,

J'ai donc mis la ligne
LoadModule vhost_alias_module modules/mod_vhost_alias.so

puis j'ai activé ce module via webmin ( la ligne AddModule mod_vhost_alias.c s'est rajouté)

Lorsque j'essai de redemarrer apache, j'ai le message d'erreur suivant :
Code:
sd1175:~# /etc/init.d/httpd restart
Configuration syntax error detected. Not reloading.

Syntax error on line 8 of /etc/apache/modules.conf:
Cannot add module via name 'mod_vhost_alias.c': not in list of loaded modules

...
Il n'existerai pas le livre "serveur dedié pour les nuls" ou un livre bien du meme genre, car la je commence un peut a désespérer...
 
WRInaute impliqué
Bon, ben c´est relativement simple:
quand tu ajoute un module, il faut aussi ajouter la source en .c
alors il te faut dans ton fichier de config:
LoadModule vhost_alias_module modules/mod_vhost_alias.so
puis:
AddModule mod_vhost_alias.c

Et dans l´ordre.
pui il faut bien sur avoir le module dans la directorie module.

A mon avis, l´ordre n´est pas bon: tu essayes d´ajouter le module sans l´avoir charger...
 
WRInaute occasionnel
Merci pour ton aide, tout les tutorials du monde ne valent pas une aide d'un membre de WRI ;)

Donc j'ai mis loadmodule avant addmodules, maintenant je n'ai plus de message d'erreur lorsque je restart apache (c'est déjà bien par ce que ça faisait 3 jours que je cherchais a ne plus avoir ce message d'erreur !).

Mais les sous domaines ne fonctionnent toujours pas, comment fait-on pour vérifier si le module est bien dans la directorie que j'ai spécifié ?
 
Discussions similaires
Haut