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

Langage PHP Discussion :

Dirname et url (http://sous-site.site.fr)


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2007
    Messages
    406
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 406
    Par défaut Dirname et url (http://sous-site.site.fr)
    Bonjour,

    J'ai actuellement fait migré mon site dans un espace sous-site, mais je remarque que les dirname retourne toujours l'adresse de l'ancien site.

    Je ne connais pas exactement le fonctionnement de dirname(__FILE__) dans ce genre de structure, mais je ne trouve pas de solution, sachant qu'il y a trop d'appel avec dirname.

    si vous avez des idées ça serait sympa!

    merci!

    je rappelle:
    site original: http://www.site.fr
    site nouveau:http://sous-site.site.fr

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 25
    Par défaut Voir plutôt le fichier .htaccess du serveur Apache
    Bonsoir.
    Pour ma part, pour les sous-domaines, je n'ai pas utilisé dirname(__FILE__) mais plutôt le fichier .htaccess du serveur Apache (à la base du site pour cette occasion).

    Je ne sais si ce sera pareil pour tout le monde (pour toi ?) mais ce bout de code est à tenter :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    RewriteEngine on
     
    # redirection des sous-domaines
    RewriteCond %{REQUEST_URI} !^/sous-domaines
    RewriteCond %{HTTP_HOST} ^([^.]*)\.?([^.]+).([^.]+)$ [NC]
    RewriteCond %1 !^www$ [NC]
    RewriteRule ^(.*)$ /sous-domaines/%1/$1
    "sous-domaines" est un dossier situé à la racine et dans lequel j'entre tous les sous-domaines (des dossiers séparés contenant des sites distincts) nommé ainsi parce que c'est conventionnel (rien n'empèche de changer le nom) - On peut ensuite placer dedans autant de dossiers "sous-site" comprenant un index.php - Et ça fonctionne en tapant l'adresse http://sous-site.site.fr.

    <edit>
    Dans notre exemple : http://sous-site.site.fr/ (sans les www) est égal à http://www.site.fr/sous-domaines/sous-site/ cela conduit à la même page. (CQFD)
    </edit>

  3. #3
    Membre Expert
    Avatar de gene69
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 769
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 769
    Par défaut
    @aureance
    ça suffit ce truc pour définir un serveur virtuel dans apache?

    @ranell
    dirname() retourne la partie avec les répertoires du nom d'un fichier. Si tu peux changer la façon dont apache montre le répertoire à ses clients, tu n'as pas forcement à utiliser la structure et les vrais chemins dans ton code. surtout que dirname(__FILE__) == __DIR__

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Juste pour info et pour exemple, l'hébergeur où je suis propose de gérer ça de la manière la plus simple qui soit via le panel Admin.
    Ca se résume à créer en 1er le répertoire du sous domaine (genre sousdomaineA)
    Puis coté panel de désigner le répertoire (sousdomaineA) puis de donner le nom du sous domaine (genre sous-site).

    Il me semble que tout hébergeur digne de ce nom offre ce genre de manip, non ?
    Même chose pour la protection des répertoires (genre admin), plus besoin de créer de .htaccess/.htpasswd.
    De même que les directives comme register_global, magic_quotes_gpc, short_open_tag, display_errors,etc, etc ...
    Il y a pas mal de choses comme ça très courantes gérées depuis le panel.


    Du coup, et si ce n'est pas ton cas, je ne sais pas comment le faire via .htaccess, j'ai jamais eu à le faire "à la mano".

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    25
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Janvier 2010
    Messages : 25
    Par défaut
    Pour donner un exemple concret, un site en construction actuellement : ( CSS pas encore au point pour les multiples versions I-E )
    http://www.86600.fr
    et ses deux sous-domaines actuels…
    http://gcia-de-lusignan.86600.fr
    http://le-sainte-catherine.86600.fr

    le .htaccess intégral pour ce site :
    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
    # les erreurs ordinaires renvoient à l'accueil…
    ErrorDocument 404 http://www.86600.fr
    ErrorDocument 403 http://www.86600.fr
    ErrorDocument 405 http://www.86600.fr
     
    RewriteEngine on
     
    # redirection des sous-domaines
    RewriteCond %{REQUEST_URI} !^/sous-domaines
    RewriteCond %{HTTP_HOST} ^([^.]*)\.?([^.]+).([^.]+)$ [NC]
    RewriteCond %1 !^www$ [NC]
    RewriteRule ^(.*)$ /sous-domaines/%1/$1
     
    # fix trailing slash
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^(.+[^/])$ $1/ [L]
    Une image simplifiée de la hiérarchie des dossiers :



    Vous pouvez voir l'image ci-dessus en situation réelle et de manière équivalente selon votre humeur ici :
    tests.86600.fr/images/dossiers-sous-dom.jpg
    ou bien ici :
    www.86600.fr/sous-domaines/tests/images/dossiers-sous-dom.jpg

    Pour de plus amples informations voir ici : http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    @Auréance
    Sauf erreur bien sûr, mais à mon sens dans cette façon de faire on ne peu pas parler de sous-domaine, mais de réécriture d'URL tout simplement.
    D'ailleurs, "sous-site1" et "sous-site2" sont tous 2 dans "sous-domaine", qui lui même se trouverait dans 1 seul et unique Host (www, ou htdocs en général).
    En faite, on simule plusieurs sites sans pour autant qu'il y ait vraiment plusieurs Host.

    Mais pourquoi, bien sûr.


    Ce que j'évoquais, c'est vraiment des sous-domaines, et ça peut être structuré comme ci-dessous sans avoir recourt à la moindre réécriture :
    Pour un domaine principale comme dev.com
    home/rootDev/www (site principale : -http://www.dev.com)
    home/rootDev/blog (sous-domaine, un blog : -http://blog.dev.com)
    home/rootDev/forum (sous-domaine, un forum : -http://forum.dev.com)

    Les 3 sites sont réellement 3 Host bien à part, il y aucun rapport entre eux car aucun n'est imbriqué dans l'autre, ils sont tous au même niveau dans l'espace d'hébergement (comme un mutualisé par ex.).
    Ici on a vraiment 1 domaine et 2 sous-domaines (du domaine dev.com).

Discussions similaires

  1. urls https differentes sur deux sites
    Par asus02 dans le forum Débuter
    Réponses: 0
    Dernier message: 05/07/2012, 08h12
  2. [HTTPS] connexion à un site + acceptation du certificat
    Par MaKyOtO dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 21/11/2007, 12h16
  3. [RegEx] Récupérer les URL de type www.site.com/page.php?r=5#856
    Par brunoperel dans le forum Langage
    Réponses: 1
    Dernier message: 15/09/2007, 13h28
  4. Réponses: 3
    Dernier message: 17/02/2007, 20h05
  5. [Upload] copier un fichier (lien http) vers mon site
    Par dinver dans le forum Langage
    Réponses: 2
    Dernier message: 22/02/2006, 11h21

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