ebouilleur Posté 26 Mai 2006 Posté 26 Mai 2006 Bonjour, J'ai une url que je n'arrive pas a réécrire, ou je ne voit pas trop comment faire. Actuellement dans mon fichier .htaccess j'ai : Options +FollowSymlinks RewriteEngine on RewriteRule ^inconnu\.html$ /test/test.html [L] Donc si je tappe l'url domaine.com/inconnu.html je suis rediriger vers domaine.com/test/test.html Mais ce que je voudrais faire c'est juste avoir a tapper domaine.com/inconnu pour etre rediriger. c'est possible? que dois-je rajouter ou modifier dans mon .htaccess?? PS : ceci n'est que des tests, ce que je souhait au final c'est rediriger une url du type : www.euros-million.eu/?ref=ebouilleur vers www.euros-million.eu/ebouilleur Merci Ebouilleur
ludodoludujodu Posté 26 Mai 2006 Posté 26 Mai 2006 Je pense qu'il te suffit de mettre RewriteRule ^inconnu$ /test/test.html [L]
ebouilleur Posté 26 Mai 2006 Auteur Posté 26 Mai 2006 non ca ne suffit pas, en tout cas, ca ne change rien du tout
InTech Posté 26 Mai 2006 Posté 26 Mai 2006 (modifié) Bonjour, essayez : Options +FollowSymlinks RewriteEngine on RewriteRule ^(.*) /?ref=$1 Bonne continuation ++ PS: non ca ne suffit pas, en tout cas, ca ne change rien du tout je pense qu'il aurait préferé un Merci pour ta réponse mais ca ne fonctionne pas, tu as une autre idée ? Modifié 26 Mai 2006 par InTech
ebouilleur Posté 28 Mai 2006 Auteur Posté 28 Mai 2006 Oui c'est exacte, autant pour moi J'ai testé ce que tu nous a soumis, mais du coup j'obtient une belle erreur 500 Internal Server ErrorThe server encountered an internal error or misconfiguration and was unable to complete your request. Please contact the server administrator, webmaster_AT_euros-million.eu and inform them of the time the error occurred, and anything you might have done that may have caused the error. More information about this error may be available in the server error log. Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request. donc merci mais ca ne doit pas etre encore ca...
ebouilleur Posté 8 Juin 2006 Auteur Posté 8 Juin 2006 Bonjour je reviens a nouveau vers vous car je n'y arrive pas j'ai essayé plein de chose mais soit rien ne se produit, soit j'ai une erreur 500, auriez vous d'autres idées? merci ebouilleur
TheRec Posté 8 Juin 2006 Posté 8 Juin 2006 Bonjour, La règle suivante fonctionne (testée avec hébergement Windows et Linux) : Options +FollowSymlinks +Indexes -MultiViewsRewriteEngine OnRewriteRule ^inconnu[/]?$ /test/test.html [L] L'option "-MultiViews" empêche que Apache recherche un fichier "inconnu*" qui se trouverait dans le même répertoire... [/]? indique qu'il peut y avoir 0 ou 1 slash à la fin (c'est un comportement courant...c'est celui des répertoire, alors autant le reproduire lorsqu'on veut faire "croire" à un répertoire;)) Si tu es hébergé en mutualisé avec OVH par exemple, tu dois mettre le premier "/" avant "test", ils utilisent un mod_rewrite personnalisé. Si ça ne fonctionne pas, vérifie que ton mod_rewrite soit bien activé... tu as une explication dans les publications du Hub et tu peux également vérifier ceci en exécutant ce code : <?php phpinfo(); ?> Ceci dans un fichier PHP bien entendu...tu dois trouver mod_rewrite dans la rubrique "apache" à la ligne "Loaded Modules".
ebouilleur Posté 12 Juin 2006 Auteur Posté 12 Juin 2006 Ok merci ca marche super Après y a t il possibilité de faire quelque chose de générique, avec une variable, pour que ca marche pour tout ce qui peut etre du meme type... Genre : RewriteRule ^var[/]?$ /test/var.html [L] Et donc suivant le mot que l'on a tapper ca va directement chercher dans le repertoire indiquer le bon fichier, pratique si on veut rediriger 50 pages, que l'on n'écrive pas 50 lignes de codes ? Merci pour vos réponses Cdlt Ebouilleur
TheRec Posté 12 Juin 2006 Posté 12 Juin 2006 Bonsoir, Je t'invite à lire cet article dans les publications du Hub... Il y est décrit exactement ce que tu cherches à faire et même plus, donc bonne lecture.
ebouilleur Posté 13 Juin 2006 Auteur Posté 13 Juin 2006 je l'avais lu la semaine dernière et mes tests n'avaient pas fonctionné, voila ce que j'avais marqué : RewriteRule ^([0-9]*[a-b]*)$ /test/$1.html [L] Mais j'ai pu faire une erreur sur la syntaxe peut etre.... Yves
TheRec Posté 13 Juin 2006 Posté 13 Juin 2006 Tu n'étais pas loin Simplement lorsque tu définis une classe de caractère (entre parenthèses carrées), cela correspond à un caractère... puis tu l'étends avec un caractère comme * ou + ou même ? , cela signifie toute "suite" de caractères contigus de cette classe (enfin pour * et ? il peut n'y avoir qu'un seul caractère ou même aucun)... Donc en déclarant deux classes de caractères tu as définit que ceci: La chaîne doit commencer par 0 ou plusieurs caractères allant de 0 à 9 : [0-9]* La chaîne doit ensuite avoir 0 ou une lettre entre a et b : [a-b]* Alors que tu souhaitais sûrement faire ceci : RewriteRule ^([0-9a-z]+)[/]?$ /test/$1.html [L,NC] Une seule classe (contenue dans un sous-masque...définit par les parenthèses), qui doit avoir au moins 1 caractère ou plus et étant composée uniquement de caractères numériques et de lettres comprises entre a et z. Le flag "NC" (nocase) indique que la chaîne correspondra même si tu utilises des majuscules dans la chaîne et que tes classes de caractères n’autorisent pas les majuscules.
ebouilleur Posté 13 Juin 2006 Auteur Posté 13 Juin 2006 Ok je comprend donc pourquoi ca ne fonctionnait pas, Juste une dernière petite question, je ne vois pas trop l'utilité du : [/]? Peut tu m'expliquer? Merci Ebouilleur
Bourinho Posté 13 Juin 2006 Posté 13 Juin 2006 Je préviens, je n'y connais encore rien en redirection...mais bon, je vais prendre un risque!!! D'après ce que je connais des Regex (car c'est bien de cela qu'il s'agit??? ), cette proposition risque de te poser des soucis avec des adresses du type "sousdossier/page.php" qui seront redirigées vers "test/sousdossier.html" quelque soit la page page.php... D'ailleurs, cela m'étonne que cela redirige les adresses du type "page" vers "test/page.html" car il n'y a pas le caractère '/' après page... Mais bon, si cela marche, c'est bien mais je capte pas pourquoi!!! A+
TheRec Posté 13 Juin 2006 Posté 13 Juin 2006 Juste une dernière petite question, je ne vois pas trop l'utilité du : [/]?Peut tu m'expliquer? Je l'ai expliqué un peu plus haut : [/]? indique qu'il peut y avoir 0 ou 1 slash à la fin (c'est un comportement courant...c'est celui des répertoire, alors autant le reproduire lorsqu'on veut faire "croire" à un répertoire;)) Mais bon, si cela marche, c'est bien mais je capte pas pourquoi!!! Simplement parce qu'Apache avant d'effectuer une réécriture, s'occupe de vérifier si l'URL demandée par l'utilisateur pointe vers une répertoire ou un fichier existant ou non... s'il n'en trouve point, il fera la réécriture (ou redirection, suivant le cas... bref l'analyse du .htaccess du répertoire en cours). S'il en trouve un il présentera son contenu... Il y a encore une couche intermédiaire qui est activée par l'option "Multiviews" (qui permet de trouver un fichier en ne mentionnant qu'une partie de son nom dans l'URL, mais ce n'est pas le propos de ce sujet).
Bourinho Posté 14 Juin 2006 Posté 14 Juin 2006 (modifié) En fait, c'est tres clair mais il me semblait avoir lu sur le site du Zero : ? = n'importe qu'elle suite caractere...je viens d'y retourner et en fait ? veut bien dire ce que tu lui fais dire!!! Je sais vraiment pas ce qui s'est passe??? J'ai l'impression de devenir cingle!!! A+ Modifié 14 Juin 2006 par Bourinho
ebouilleur Posté 20 Juin 2006 Auteur Posté 20 Juin 2006 Bonjour, Je voulais vous remercier car cela marche à la perfection. Pour voir le résultat : euros-million.eu/ebouilleur Merci Ebouilleur
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant