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 :

URL Rewriting, multisites


Sujet :

Apache

  1. #1
    Membre régulier
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    Mars 2004
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    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 : 369
    Points : 121
    Points
    121
    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
    117
    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 : 117
    Points : 187
    Points
    187
    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:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    RewriteCond "%{HTTP_HOST}" 
    RewriteCond "%{QUERY_STRING}"
    Silfun1


    L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
    - Ne vous privez pas pour voter pour ma réponse si elle vous plaît bien
    - Ne pas hésiter à cliquer sur "Résolu" quand votre problème posé a trouvé une solution. Et un petit merci fait toujours plaisir

  3. #3
    Membre régulier
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    Mars 2004
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    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 : 369
    Points : 121
    Points
    121
    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
    117
    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 : 117
    Points : 187
    Points
    187
    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 vous privez pas pour voter pour ma réponse si elle vous plaît bien
    - Ne pas hésiter à cliquer sur "Résolu" quand votre problème posé a trouvé une solution. Et un petit merci fait toujours plaisir

  5. #5
    Membre régulier
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    Mars 2004
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    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 : 369
    Points : 121
    Points
    121
    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
    117
    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 : 117
    Points : 187
    Points
    187
    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 vous privez pas pour voter pour ma réponse si elle vous plaît bien
    - Ne pas hésiter à cliquer sur "Résolu" quand votre problème posé a trouvé une solution. Et un petit merci fait toujours plaisir

  7. #7
    Membre régulier
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    Mars 2004
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    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 : 369
    Points : 121
    Points
    121
    Par défaut
    Bonsoir Silfun1,

    Voici ce que mon hébergeur répond :

    "Les hébergements Mutualisés sont en apache 2.4.
    Malheureusement, après vérification, vous ne pouvez pas éditer le paramètre LogLevel via un fichier .htaccess (voir doc apache) : https://httpd.apache.org/docs/2.4/fr....html#loglevel "


    Que peut on faire ?

  8. #8
    Membre habitué Avatar de silfun1
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2015
    Messages
    117
    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 : 117
    Points : 187
    Points
    187
    Par défaut
    Salut,

    Est-ce que tes règles de réécriture fonctionne bien pour ton site www.asso1.com ?
    As tu un problème QUE sur asso-2.fr ?

    Si tu n'as pas accès à tes logs, tu peux faire des tests en ligne:

    https://htaccess.madewithlove.be/
    https://www.generateit.net/mod-rewrite/index.php
    https://www.regular-expressions.info...ptexample.html


    L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
    - Ne vous privez pas pour voter pour ma réponse si elle vous plaît bien
    - Ne pas hésiter à cliquer sur "Résolu" quand votre problème posé a trouvé une solution. Et un petit merci fait toujours plaisir

  9. #9
    Membre régulier
    Homme Profil pro
    Retraité Ing Electronique
    Inscrit en
    Mars 2004
    Messages
    369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    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 : 369
    Points : 121
    Points
    121
    Par défaut
    J'y comprends plus rien ! Dans https://htaccess.madewithlove.be/, lorsque j'y mets :
    et dans le .htaccess
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    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]
    la seule règle prise en compte est :et idem pour alors que ça marche dans mon code

  10. #10
    Membre habitué Avatar de silfun1
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Mars 2015
    Messages
    117
    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 : 117
    Points : 187
    Points
    187
    Par défaut
    Hello,
    Perso ça fonctionne sur mon mobile Androïde

    https://htaccess.madewithlove.be

    Request url =
    http://www.asso-2.fr/art140

    Htaccess =
    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]

    Optional =rien

    Ouput Url =
    http://www.multisite.com/edit_art.php?asso=2%26article=140


    Debugging info
    1 Options +FollowSymlinks
    This line is not supported by our tool.
    2 RewriteEngine on
    RewriteEngine was now turned on
    3 RewriteCond %{HTTP_HOST} www\.asso1\.com
    This rule was not met.
    4 RewriteRule ^art([0-9]+)$ http://www.multisite.com/edit_art.php?asso=2&article=$1 [NC,L]
    This rule was not met.
    5 RewriteCond %{HTTP_HOST} www\.asso-2\.fr
    This condition was met.
    6 RewriteRule ^art([0-9]+)$ http://www.multisite.com/edit_art.php?asso=2&article=$1 [NC,L]
    The new url is http://www.multisite.com/edit_art.php?asso=2%26article=140
    The tests are stopped, using a different host will cause a redirect.


    L'informatique, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
    - Ne vous privez pas pour voter pour ma réponse si elle vous plaît bien
    - Ne pas hésiter à cliquer sur "Résolu" quand votre problème posé a trouvé une solution. Et un petit merci fait toujours plaisir

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