Aller au contenu

Noter ce sujet :

Recommended Posts

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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(.+)\.*

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Retire le flag [L] sur ta ligne RewriteCond ! ;)

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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 !

Partager ce message


Lien à poster
Partager sur d’autres sites

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]

Partager ce message


Lien à poster
Partager sur d’autres sites

Whouah, ça marche maintenant.

Super

Merci

Merci

Modifié par Zakuli
oubli de prendre en compte de l'une de tes remarques

Partager ce message


Lien à poster
Partager sur d’autres sites

Ben oui, une fois que tu as corrigé les erreurs de syntaxe ;)

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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 ?

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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]

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

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é par Zakuli

Partager ce message


Lien à poster
Partager sur d’autres sites

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]

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×