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

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    mars 2004
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Retraité Ing Electronique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2004
    Messages : 322
    Points : 117
    Points
    117

    Par défaut URL Rewriting, multisites

    Bonjour

    Je construis une plateforme associative multisite dont le domaine est "www.multisite.com".

    Toutes les associations devront y accéder à partir de leur propre domaine : www.asso1.com ou www.asso2.fr, ou www.asso3.net

    Pour l'instant, le site fonctionne avec des url du type www.multisite.com/edit_art.php?asso=3&article=102 : on édite l'article N°102 pour l'association N°3

    Maintenant, grâce à l'URL Rewriting, je voudrais que les associations puissent utiliser leur propre domaine pour accéder à leurs articles.

    Pour cela l'URL Rewriting devra transformer :
    www.asso1.com/art100 en www.multisite.com/edit_art.php?asso=1&article=100
    www.asso2.fr/art101 en www.multisite.com/edit_art.php?asso=2&article=101
    www.asso3.net/art102 en www.multisite.com/edit_art.php?asso=3&article=102

    Quelles règles écrire pour obtenir le résultat voulu ?

    Merci
    Zakuli

  2. #2
    Membre habitué Avatar de silfun1
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    mars 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2015
    Messages : 98
    Points : 147
    Points
    147

    Par défaut

    Hello Zakuli,

    Peux tu nous montrer tes premiers tests ?
    Quelles sont les règles que tu as déjà essayé ?


    Regarde ces pages:
    https://httpd.apache.org/docs/curren...ite/intro.html
    https://httpd.apache.org/docs/trunk/...remapping.html
    https://httpd.apache.org/docs/curren...ite/flags.html
    https://www.sitepoint.com/apache-mod...te-examples-2/


    Fais quelques tentatives, envois tes résultats et tes messages d'erreurs. Je t'aiderai sur ce sujet.

    Indications:
    RewriteCond "%{HTTP_HOST}"
    RewriteCond "%{QUERY_STRING}"

    Silfun1


    L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
    - Ne pas hésiter à cliquer sur "Résolu" quand votre problème posé a trouvé une solution. Et un petit merci fait toujours plaisir
    -- Mon projet principal = http://www.usiscript.com/description.php

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    mars 2004
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Retraité Ing Electronique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2004
    Messages : 322
    Points : 117
    Points
    117

    Par défaut

    Merci sifun1,

    Indisponible jusqu'à récemment, j'ai quand même travaillé le sujet et j'ai réussi à installer l'URL Rewriting, mais pas dans tous les cas :

    Voici les règles mises en place dans .htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Options +FollowSymlinks
    RewriteEngine On
     
    RewriteCond %{HTTP_HOST} www\.asso1\.com
    RewriteRule ^art([0-9]+)$ http://www.multisite.com/edit_art.php?asso=2&article=$1 [NC,L]
     
    RewriteCond %{HTTP_HOST} www\.asso-2\.fr
    RewriteRule ^art([0-9]+)$ http://www.multisite.com/edit_art.php?asso=2&article=$1 [NC,L]
    J'ai une asso avec un tiret du 6 ("-") dans le nom de domaine, comme pour asso-2, et la règle pour cette asso n'est pas appliquée et j'ai l'erreur "The requested URL /art100 was not found on this server."

    Voyez vous où est l'erreur ? Et si oui, comment la corriger ?

    Merci
    Zakuli

  4. #4
    Membre habitué Avatar de silfun1
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    mars 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2015
    Messages : 98
    Points : 147
    Points
    147

    Par défaut

    Hello,

    Est-ce que cela signifie que tes règles fonctionnent pour le site www.asso1.com, mais pas pour asso-2 ?

    Si oui, tu peux alors activer les logs et traces pour avoir plus de détails:

    # Enable the rewrite engine
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    RewriteEngine On
     
    # Enable rewrite rules logs
    # For Apache 2.4
    # put a log level
    LogLevel alert rewrite:trace6
     
    # For Apache 2.2
    RewriteLogLevel 5

    Pour info, voici les règles que j'avais en tete :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    RewriteCond "%{HTTP_HOST}"   "^www\.asso1\.com" [NC]
    RewriteCond "%{QUERY_STRING}" "^/art([0-9]+)$"
    RewriteRule "(.*)"            "www.multisite.com/edit_art.php?asso=1&article=%1" [L]
     
    RewriteCond "%{HTTP_HOST}"   "^www\.asso2\.fr" [NC]
    RewriteCond "%{QUERY_STRING}" "^/art([0-9]+)$"
    RewriteRule "(.*)"            "www.multisite.com/edit_art.php?asso=2&article=%1" [L]
     
    RewriteCond "%{HTTP_HOST}"   "^www\.asso3\.net" [NC]
    RewriteCond "%{QUERY_STRING}" "^/art([0-9]+)$"
    RewriteRule "(.*)"            "www.multisite.com/edit_art.php?asso=3&article=%1" [L]
    = Je vos qu'on arrive quasiment au même résultat


    L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
    - Ne pas hésiter à cliquer sur "Résolu" quand votre problème posé a trouvé une solution. Et un petit merci fait toujours plaisir
    -- Mon projet principal = http://www.usiscript.com/description.php

  5. #5
    Membre régulier
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    mars 2004
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Retraité Ing Electronique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : mars 2004
    Messages : 322
    Points : 117
    Points
    117

    Par défaut

    Super, Merci pour le renseignement.
    J'ai donc mis dans .htaccess ton code juste après le "RewriteEngine On"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    # Enable rewrite rules logs
    # For Apache 2.4
    # put a log level
    LogLevel alert rewrite:trace6
     
    # For Apache 2.2
    RewriteLogLevel 5
    Mais je n'ai pas trouvé le log, où est il ?

  6. #6
    Membre habitué Avatar de silfun1
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    mars 2015
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : mars 2015
    Messages : 98
    Points : 147
    Points
    147

    Par défaut

    Hello,

    Attention, il ne faut pas copier-coller tout le bloc. Regardes bien. Il faut que tu choisisse le parametrage selon la version de ton serveur Apache:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    # Enable rewrite rules logs
    # For Apache 2.4
    # put a log level
    LogLevel alert rewrite:trace6
    ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    # For Apache 2.2
    RewriteLogLevel 5
    Les traces, erreurs et autres informations seront visibles dans les journaux du serveur web Apache.

    Tu peux récupérer ton fichier de log en regardant dans tes fichiers de configurations :
    1 - récupérer le fichier principal de configuration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ps aux|grep "httpd\|apache"
    2 - a partir de la ligne de processus, tu dois trouver le fichier "père" de Apache, et donc en déduire le répertoire parent.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    grep -RHi "CustomLog\|ErrorLog" <APACHE-DIR>/conf/*.conf|grep -v ":[ \s]*#"

    Autre chose, Est-ce que tes règles de réécriture fonctionne bien pour ton site www.asso1.com ?


    L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
    - Ne pas hésiter à cliquer sur "Résolu" quand votre problème posé a trouvé une solution. Et un petit merci fait toujours plaisir
    -- Mon projet principal = http://www.usiscript.com/description.php

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