Zakuli Posté 15 Novembre 2018 Posté 15 Novembre 2018 Bonjour, Débutant en URL Rewriting, je ne suis pas arrivé à créer les règles concernat le besoin ci-dessous : 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
SStephane Posté 16 Novembre 2018 Posté 16 Novembre 2018 J'e n'ai jamais essayé mais un truc dans ce genre pourrait passer : RewriteCond %{HTTP_HOST} www\.asso(.+)\.com RewriteRule ^art([0-9]+)$ /edit_art.php?asso=%1&article=$1
Dan Posté 16 Novembre 2018 Posté 16 Novembre 2018 Il faudrait pour cela que le domaine principal soit multisite.com et que les domaines asso*.* soient déclarés comme alias de manière à ce que toute requête apache soit redirigée vers un seul et unique DOCUMENT_ROOT. Et dans ce cas, cela devrait fonctionner Par contre : RewriteCond %{HTTP_HOST} www\.asso(.+)\.com suppose que tous les domaines aient un TLD en com ... Il faudrait plutôt mettre ceci : RewriteCond %{HTTP_HOST} www\.asso(.+)\.*
Zakuli Posté 25 Novembre 2018 Auteur Posté 25 Novembre 2018 Bonjour, Merci à tous les deux et désolé de ma réponse tardive, j'étais en déplacement. J'ai donc tenté d'essayer physiquement votre proposition : Création de 4 sous domaines : "urlrw.multisite.com", "urlrw1.multisite.com", "urlrw2.multisite.com", "urlrw3.multisite.com" les 4 sous domaines pointent sur le répertoire "urlw" Dans ce répertoire : deux fichiers, "index.php" dans lequel on trouve le code : <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Essai URL Rewriting</title> </head> <body> asso : <?php echo $_GET['a']; ?>;<br> art : <?php echo $_GET['art']; ?>; </body> </html> ".htaccess", dans lequel on trouve le code : Options +FollowSymlinks RewriteEngine On RewriteCond %(HTTP_HOST) urlrw(.+)\.multisite\.com [L] RewriteRule ^art([0-9]+)$ urlrw.multisite.com/index.html?a=%1&art=$1 [L] quand j'exécute le lien "urlrw1.multisite.com/art100" ou "urlrw1.multisite.com" avec le fichier ".htaccess" dans le répertoire "urlrw" : j'ai la réponse suivante : Internal Server Error The server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator at support@phpnet.org to inform them of the time this error occurred, and the actions you performed just before this error. More information about this error may be available in the server error log. si je retire le fichier ".htaccess" du répertoire "urlrw" et que j'appelle le lien "urlrw1.multisite.com" : j'ai la réponse suivante : asso : ; art : ; Rien de plus normal, mais ça montre au moins que les sous domaines pointent bien et qu'index.php est bien exécuté ! Que dois je faire maintenant pour corriger le sript ? Merci Zakuli
Dan Posté 27 Novembre 2018 Posté 27 Novembre 2018 Je remarque aussi ceci dans ta ligne RewriteCond : %(HTTP_HOST) alors qu'il faut %{HTTP_HOST} c'est à dire des accolades au lieu des parenthèses !
Dan Posté 27 Novembre 2018 Posté 27 Novembre 2018 En résumé : RewriteEngine On RewriteCond %{HTTP_HOST} urlrw(.+)\.multisite\.com RewriteRule ^art([0-9]+)$ http://urlrw.multisite.com/index.html?a=%1&art=$1 [L]
Zakuli Posté 27 Novembre 2018 Auteur Posté 27 Novembre 2018 (modifié) Whouah, ça marche maintenant. Super Merci Merci Modifié 27 Novembre 2018 par Zakuli oubli de prendre en compte de l'une de tes remarques
Dan Posté 27 Novembre 2018 Posté 27 Novembre 2018 Ben oui, une fois que tu as corrigé les erreurs de syntaxe
Zakuli Posté 27 Novembre 2018 Auteur Posté 27 Novembre 2018 Bonjour, Pas très clair mon titre, j'en conviens, je vais donc tenter d'expliciter mon problème. Webmaster Hub, m'a donné un bon coup de main pour utiliser l'URLRewriting, et ça marche bien. Par contre quand .htacces réécrit l'adresse "www.monsite.com/art100" en "www.monsite.com/edit_art.php?art=100", c'est ce dernier lien que je retrouve dans l'adresse, alors que j'aimerais conserver www.monsite.com/art100, un peu comme le fait cette page de Webmaster Hub : "https://www.webmaster-hub.com/forum/118-fichier-htaccess-et-réécriture-d39urls/" Comment faire cela ?
Dan Posté 27 Novembre 2018 Posté 27 Novembre 2018 Hello, J'ai combiné tes deux messages, vu que le dernier est la suite du précédent. J'essaierais ceci comme règle (si tu as mod_proxy installé) : RewriteCond %{HTTP_HOST} urlrw(.+)\.multisite\.com RewriteRule ^art([0-9]+)$ http://urlrw.multisite.com/index.html?a=%1&art=$1 [P] En fait, seul le drapeau final change [L] devient [P]
Zakuli Posté 27 Novembre 2018 Auteur Posté 27 Novembre 2018 (modifié) Désolé, j'ai cru que j'avais perdu mon message et j'en ai recréer un nouveau. J'ai tenté de le supprimer, mais n'ai pas trouvé comment le faire ! Si ta solution me renvoie : Not Found The requested URL /art100 was not found on this server. C'est que le mod_proxy n'est pas installé ? Modifié 27 Novembre 2018 par Zakuli
Dan Posté 27 Novembre 2018 Posté 27 Novembre 2018 Difficile de te répondre avec le peu d'éléments que j'ai ... il faut que je me renseigne Essaie ceci : RewriteRule /?art([0-9]+)$ http://urlrw.multisite.com/index.html?a=%1&art=$1 [P]
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant