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 :

Erreur sous-domaine


Sujet :

Apache

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Points : 4
    Points
    4
    Par défaut Erreur sous-domaine
    Bonjour,

    Je suis en train de préparer une migration donc travaille actuellement sur un dossier de test sur le serveur.
    Pour ne pas perdre tout mon référencement, je veux que le htaccess redirige les anciennes url du forum vers les nouvelles.
    Le serveur est organisé de la manière suivante :

    / : racine redirigée vers le site
    /site : dossier contenant le site, accessible depuis http://ww.domaine.com
    /test : mon dossier de test
    /test/forumtest : le dossier où je travaille actuellement

    J'ai pour le moment le htaccess suivant dans la le dossier /test/forum :
    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
    ########################
    # MOD Rewrite By Maxxx #
    ########################
    <IfModule mod_rewrite.c>
    Options -MultiViews
    Options +FollowSymlinks
     
    # Enable mod_rewrite
    RewriteEngine On
     
    # This is usually not required
    # but could be if using forum & topic virtual-folders
    RewriteBase /forumtest/
     
    #####################
    # Mod Rewrite Rules
     
    # Pas de réécriture si le fichier ou le dossier existe
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule . - [L]
     
    ##########
    # Compatibilité anciennes url
    # Vue des topics
    RewriteRule ^(.*)[-_,]t([0-9]*)[-_,]s([0-9]*)\.html(.*)$ /forumtest/index.php?showtopic=$2&st=$3 [QSA,L,NC,R=301]
    RewriteRule ^(.*)[-_,]t([0-9]*)\.html(.*)$ /forumtest/index.php?showtopic=$2$3 [QSA,L,NC,R=301]
    RewriteRule ^t([0-9]*)\.html(.*)$ /forumtest/index.php?showtopic=$1$2 [QSA,L,NC,R=301]
    # Vue des forums
    RewriteRule ^(.*)[-_,]f([0-9]*)\.html(.*)$ /forumtest/index.php?showforum=$2$3 [QSA,L,NC,R=301]
    RewriteRule ^f([0-9]*)\.html(.*)$ /forumtest/index.php?showforum=$1$2 [QSA,L,NC,R=301]
    # Vue des profils
    RewriteRule ^(.*)[-_,]m([0-9]*)\.html(.*)$ /forumtest/index.php?showuser=$2$3 [QSA,L,NC,R=301]
    RewriteRule ^m([0-9]*)\.html(.*)$ /forumtest/index.php?showuser=$1$2 [QSA,L,NC,R=301]
     
    #################################
    # Règles forum actuel
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule \.(jpeg|jpg|gif|png)$ /forumtest/public/404.php [NC,L]
     
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /forumtest/index.php [L]
     
    </IfModule>
    le dossier /test est accessible par le sous domaine http://test.domaine.com donc j'accède à mon forum de test par http://test.domaine.com/forumtest/
    Quand je navigue sur le forum de test avec les url qu'il a réécrit tout se passe bien, par contre quand je veux utiliser les anciennes url pour vérifier la compatibilité je ne suis pas redirigé sur le sous domaine.
    Le nouveau forum a des url pour le sujets du type http://test.domaine.com/forumtest/topic/1-welcome/ (le forum intègre une fonction de compatibilité, les url du type http://test.domaine.com/forumtest/index.php?showtopic=1 sont redirigées vers les nouvelles url réécrites)
    l'ancien forum a des urls du type http://forum.domaine.com/welcome-t1.html
    J'ai donc écrit le htaccess pour rediriger les url de l'ancien forum vers le nouveau.

    Le problème est que lorsque j'essaye l'url http://test.domaine.com/forumtest/welcome-t1.html je ne suis pas redirigé vers http://test.domaine.com/forumtest/index.php?showtopic=1 mais vers http://www.domaine.com/forumtest/index.php?showtopic=1
    Du coup le script du site me renvoie une erreur 404

    Je ne trouve pas où est l'erreur dans mon htaccess

    Merci d'avance pour votre aide.

  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
    Points : 12 977
    Points
    12 977
    Par défaut
    Bizarre. Les hôtes virtuels www et test ont des document roots différents ou ce sont les mêmes ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Tout est bien séparé sur notre ftp (hébergement infomaniak au cas où ça puisse aider).

    on a notre dossier cette architecture :
    / (racine ftp)
    /web (racine du www)
    /web/site
    /web/test
    /web/test/forumtest

    le dossier /web est redirigé automatiquement vers /web/site
    Pour le site et le forum ce sont deux scripts bien distincts qui n'ont aucun fichier en commun.

    Dans le dossier / j'ai un document .rewrite
    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
    RewriteEngine On
     
    RewriteCond %{HTTP_HOST} !^www
    RewriteCond %{HTTP_HOST} ^([^\.]+)\..*\..*(:[0-9]+)?$
    RewriteCond %{ENV:REDIR} !cgiwrap
    RewriteCond %{DOCUMENT_ROOT}/%1/%{REQUEST_URI} -f
    RewriteRule ^/(.*\.(pl|cgi))(\?|$) /cgiwrapDir/cgiwrap/%1/$1 [PT,E=REDIR:cgiwrap]
     
    RewriteCond %{REQUEST_URI} !\.(cgi|pl)$
    RewriteCond %{HTTP_HOST} !^www
    RewriteCond %{HTTP_HOST} ^([^\.]+)\..*\..*(:[0-9]+)?$
    RewriteCond %{DOCUMENT_ROOT}/%1 -d
    RewriteRule .* %{DOCUMENT_ROOT}/%1%{REQUEST_URI}
     
    RewriteCond %{REQUEST_URI} !\.(cgi|pl)$
    RewriteCond %{SERVER_PORT} ^80$
    RewriteCond %{HTTP_HOST} !^www
    RewriteCond %{HTTP_HOST} ^([^\.]+)\..*\..*(:[0-9]+)?$
    RewriteCond %{REQUEST_URI} !/$
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule .* http://%{HTTP_HOST}%{REQUEST_URI}/ [R]
     
    RewriteCond %{REQUEST_URI} !\.(cgi|pl)$
    RewriteCond %{SERVER_PORT} ^443$
    RewriteCond %{HTTP_HOST} !^www
    RewriteCond %{HTTP_HOST} ^([^\.]+)\..*\..*(:[0-9]+)?$
    RewriteCond %{REQUEST_URI} !/$
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI}/ [R]
    et dans le dossier /web un index.php pour la redirection
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?
     
    header("Location: http://domaine.com/site");
    exit();
     
    ?>
    ainsi qu'un htaccess
    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
    ########## Howto map /~user to /user ####################
    RewriteEngine On 
    RewriteCond %{REQUEST_URI} ^/([^/]+)$
    RewriteCond %{DOCUMENT_ROOT}/%1 !-d
    RewriteCond /home/sites/%{SERVER_NAME}/users/%1 -d
    RewriteRule ^([^/]+)$ http://%{HTTP_HOST}/$1/ [R,L]
    RewriteCond %{REQUEST_URI} ^/([^/]+)/
    RewriteCond %{DOCUMENT_ROOT}/%1 !-d
    RewriteCond /home/sites/%{SERVER_NAME}/users/%1 -d
    RewriteRule ^([^/]+)(.+)$ /~$1/$2
    #########################################################
     
    ########## Howto map /users/user to /users/user #########
    RewriteEngine On
    RewriteCond %{REQUEST_URI} ^/users/([^/]+)$
    RewriteCond %{DOCUMENT_ROOT}/%1 !-d
    RewriteCond /home/sites/%{SERVER_NAME}/users/%1 -d
    RewriteRule ^users/([^/]+)$ http://%{HTTP_HOST}/users/$1/ [R,L]
    RewriteCond %{REQUEST_URI} ^/users/([^/]+)/
    RewriteCond %{DOCUMENT_ROOT}/%1 !-d
    RewriteCond /home/sites/%{SERVER_NAME}/users/%1 -d
    RewriteRule ^users/([^/]+)(.+)$ /~$1/$2
    #########################################################

  4. #4
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Bonjour,

    En consultant les logs d'apache, il me sort juste cette erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [Sun Feb 03 16:04:06 2013] [error] [client 90.24.90.96] File does not exist: /home/www/IDduCompte/web/forumtest
    C'est donc bien qu'il sort du sous domaine pour aller dans le domaine principal

  5. #5
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    Je repose ma question différemment : quelles sont les différentes configuration (conf Apache) de tes différents hôtes virtuels ?

  6. #6
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Je n'ai pas accès au httpd.conf d'apache en hébergement mutualisé, tout se fait sur leur panneau d'admin.

    Pour faire un sous domaine il suffit de le créer dans le panneau d'admin puis de créer un dossier dans le fpt portant le même nom, voilà l'explication d'infomaniak :
    Fonctionnement :

    Une fois le sous-domaine activé, il ne vous reste plus qu'à créer un répertoire portant le même nom à la racine de votre site web (en l'absence de ce répertoire, le site principal sera automatiquement affiché, afin d'éviter des messages d'erreur peu souhaitables).

    Exemple

    Vous décidez d'activer le sous domaine "support" (http://support.domaine.com)

    Vous créez donc un répertoire "support" dans la racine de votre site web, puis vous ajoutez le sous domaine "support. L'activation du sous-domaine peut ensuite prendre jusqu'à 24 heures selon votre fournisseur d'accès.
    Mais le sous domaine test est bien présent dans la liste.

  7. #7
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    C'est là où j'ai du mal à comprendre : si /web est la racine pour www alors /web/test ne peut pas être la racine pour le sous-domaine test car il serait également accessible avec une URL en http://www.../test. Tu es vraiment sûr d'avoir créer le répertoire test au bon endroit ?

  8. #8
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    Voilà l'architecture des dossiers du ftp :
    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
    /
    ├backups
    ├backups_mysql
    ├certs
    ├data
    ├etc
    ├logs
    ├stats
    ├tmp
    ├users
    └web
     ├forums
     ├site
     └test
      └forumtest
    L'adresse domaine.com pointe bien dans le dossier /web et à chaque fois qu'on veut créer un sous domaine, il faut le déclarer dans le panneau d'admin et créer un dossier du même nom dans le dossier /web (je ne peux pas créer de dossier dans la racine du ftp / ).
    Mais effectivement avec ce système je peux accéder au dossier test avec deux url : http://test.domaine.com et http://domaine.com/test/

  9. #9
    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
    Points : 12 977
    Points
    12 977
    Par défaut
    OK, j'y vois plus clair. Si on regarde la doc Apache sur le flag R de RewriteRule :
    Use of the [R] flag causes a HTTP redirect to be issued to the browser. If a fully-qualified URL is specified (that is, including http://servername/) then a redirect will be issued to that location. Otherwise, the current protocol, servername, and port number will be used to generate the URL sent with the redirect.
    Or, ton hébergeur ne fait pas du vrai virtual hosting. Il utilise mod_rewrite pour simuler les hôtes virtuels via le fichier .rewrite. Et du coup, servername vaut toujours www.domaine.com, et pas du tout test.domaine.com par exemple. Et comme mod_rewrite utilise le server name pour calculer les redirections qui ne précisent pas l'URL pleinement qualifiée, tu te retrouves redirigé vers www.domaine.com.

    Donc la solution est on ne peut plus simple : indique une URL pleinement qualifiée dans tes redirections (fichier .htaccess du dossier /test/forumtest) :
    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
    ########################
    # MOD Rewrite By Maxxx #
    ########################
    <IfModule mod_rewrite.c>
    Options -MultiViews
    Options +FollowSymlinks
    
    # Enable mod_rewrite
    RewriteEngine On
    
    # This is usually not required
    # but could be if using forum & topic virtual-folders
    RewriteBase /forumtest/
    
    #####################
    # Mod Rewrite Rules
    
    # Pas de réécriture si le fichier ou le dossier existe
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule . - [L]
    
    ##########
    # Compatibilité anciennes url
    # Vue des topics
    RewriteRule ^(.*)[-_,]t([0-9]*)[-_,]s([0-9]*)\.html(.*)$ http://%{HTTP_HOST}/forumtest/index.php?showtopic=$2&st=$3 [QSA,L,NC,R=301]
    RewriteRule ^(.*)[-_,]t([0-9]*)\.html(.*)$ http://%{HTTP_HOST}/forumtest/index.php?showtopic=$2$3 [QSA,L,NC,R=301]
    RewriteRule ^t([0-9]*)\.html(.*)$ http://%{HTTP_HOST}/forumtest/index.php?showtopic=$1$2 [QSA,L,NC,R=301]
    # Vue des forums
    RewriteRule ^(.*)[-_,]f([0-9]*)\.html(.*)$ http://%{HTTP_HOST}/forumtest/index.php?showforum=$2$3 [QSA,L,NC,R=301]
    RewriteRule ^f([0-9]*)\.html(.*)$ http://%{HTTP_HOST}/forumtest/index.php?showforum=$1$2 [QSA,L,NC,R=301]
    # Vue des profils
    RewriteRule ^(.*)[-_,]m([0-9]*)\.html(.*)$ http://%{HTTP_HOST}/forumtest/index.php?showuser=$2$3 [QSA,L,NC,R=301]
    RewriteRule ^m([0-9]*)\.html(.*)$ http://%{HTTP_HOST}/forumtest/index.php?showuser=$1$2 [QSA,L,NC,R=301]
    
    #################################
    # Règles forum actuel
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule \.(jpeg|jpg|gif|png)$ /forumtest/public/404.php [NC,L]
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /forumtest/index.php [L]
    
    </IfModule>
    Vide le cache de ton navigateur avant de tester.

  10. #10
    Candidat au Club
    Homme Profil pro
    Technicien réseaux et télécoms
    Inscrit en
    Janvier 2013
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Technicien réseaux et télécoms
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2013
    Messages : 15
    Points : 4
    Points
    4
    Par défaut
    C'est nikel Mac, tout semble bien fonctionner

    En répondant sur l'architecture du ftp je me disais que justement ils devaient simuler les hôtes virtuels.

    Merci beaucoup

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

Discussions similaires

  1. [WS 2008] Erreur lors de la création d'un sous domaine sous windows server 2008 r2
    Par asluffy dans le forum Windows Serveur
    Réponses: 6
    Dernier message: 30/12/2014, 17h28
  2. erreur sous domaines dynamique
    Par toulousain3117 dans le forum Réseau
    Réponses: 0
    Dernier message: 28/08/2011, 15h41
  3. Cross-Domain sur un sous-domaine (erreur 302)
    Par Murmured dans le forum jQuery
    Réponses: 2
    Dernier message: 07/02/2011, 23h33
  4. Réponses: 1
    Dernier message: 31/05/2009, 22h54
  5. Personnaliser un rapport d'erreur sous Windows XP
    Par Neilos dans le forum Windows
    Réponses: 5
    Dernier message: 21/11/2003, 18h13

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