|
|
|
|
||||||
| fr.comp.info.serveurs Administration de serveurs WWW. |
![]() |
|
|
LinkBack | Outils de la discussion |
|
|
#1 |
|
Messages: n/a
Hébergeur: |
Bonjour,
je n'arrive pas à faire fonctionner la regle suivante : RewriteRule ^([0-9]+)-([0-9]+)-([^a-zA-Z0-9_]+)\.html$ rubrique.php?vue=detail&aid=$1&stid=$2&titre=$3 [L] j'ai en test cette url : 1400-16-article_d_essai_de_verification.html ou est l'erreur ? en fait ce que j'aimerais faire c'est surtout me passer du 1400-16- mais je ne vois pas comment c'est possible sauf si je n'ai que le titre en paramètre dans l'URL. merci de vos réponses |
|
|
|
#2 |
|
Messages: n/a
Hébergeur: |
pollux <pollux_@argomedias.com> écrit:
> je n'arrive pas à faire fonctionner la regle suivante : > > RewriteRule ^([0-9]+)-([0-9]+)-([^a-zA-Z0-9_]+)\.html$ > rubrique.php?vue=detail&aid=$1&stid=$2&titre=$3 [L] > > > j'ai en test cette url : 1400-16-article_d_essai_de_verification.html > > ou est l'erreur ? Il manque le chemin. |
|
|
|
#3 |
|
Messages: n/a
Hébergeur: |
Laurent Wacrenier wrote:
> pollux <pollux_@argomedias.com> écrit: > >>je n'arrive pas à faire fonctionner la regle suivante : >> >>RewriteRule ^([0-9]+)-([0-9]+)-([^a-zA-Z0-9_]+)\.html$ >>rubrique.php?vue=detail&aid=$1&stid=$2&titre=$ 3 [L] >> >> >>j'ai en test cette url : 1400-16-article_d_essai_de_verification.html >> >>ou est l'erreur ? > > > Il manque le chemin. ben je ne comprends pas où ça il faut mettre le chemin ? je ne trouve aucun exemple de rewriting URL ou il faut mettre le chemin . ma page se trouve dans /ECOPUBLISH/ecogenie/ j'ai essayé ça : RewriteRule ^([0-9]),([0-9]),([a-zA-Z0-9_])\.html$ ECOPUBLISH/ecogenie/rubrique.php?vue=detail&aid=$1&stid=$2&titre=$3 [L] ça ne marche pas mieux ... |
|
|
|
#4 |
|
Messages: n/a
Hébergeur: |
pollux <pollux_@argomedias.com> écrit:
> j'ai essayé ça : > RewriteRule ^([0-9]),([0-9]),([a-zA-Z0-9_])\.html$ > ECOPUBLISH/ecogenie/rubrique.php?vue=detail&aid=$1&stid=$2&titre=$3 [L] > > ça ne marche pas mieux ... C'est la valeur testée qui a un chemin, en fonction de la version d'Apache ou du niveau est mise la règle. RewriteRule /([0-9]),([0-9]),([a-zA-Z0-9_])\.html$ ... Ajoute des logs si tu veux débuguer |
|
|
|
#5 |
|
Messages: n/a
Hébergeur: |
Le Mon, 12 Sep 2005 16:16:56 +0200, pollux a écrit :
> je n'arrive pas à faire fonctionner la regle suivante : > > RewriteRule ^([0-9]+)-([0-9]+)-([^a-zA-Z0-9_]+)\.html$ > rubrique.php?vue=detail&aid=$1&stid=$2&titre=$3 [L] Je ne sais pas si c'est une typo, mais [^a-zA-Z0-9_] signifie tous les caractères *sauf* ceux mentionnés, à cause du ^ au début. Il faut donc l'enlever à cet endroit. Un PT, comme flag, sera aussi peut-être nécessaire, selon votre configuration. > en fait ce que j'aimerais faire c'est surtout me passer du 1400-16- > > mais je ne vois pas comment c'est possible sauf si je n'ai que le titre > en paramètre dans l'URL. Là, il faut faire un programme, qui va chercher dans la base de données l'article en fonction du titre donné. Ca sera moins performat, et plus casse-gueule. Mais c'est possible. -- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news> |
|
|
|
#6 |
|
Messages: n/a
Hébergeur: |
À (at) Mon, 12 Sep 2005 16:16:56 +0200, pollux <pollux_@argomedias.com> écrivait (wrote): > je n'arrive pas à faire fonctionner la regle suivante : > > RewriteRule ^([0-9]+)-([0-9]+)-([^a-zA-Z0-9_]+)\.html$ > rubrique.php?vue=detail&aid=$1&stid=$2&titre=$3 [L] Le ^ signifie debut de la chaîne. Or, à moins de faire vos requêtes HTTP à la main ou avec un outil un peu exotique, votre chemin commence toujours par / (la barre oblique) ! > > j'ai en test cette url : 1400-16-article_d_essai_de_verification.html Que vous avez du écrire : http://votre.serveur.com/1400-16-art...ification.html et la chaîne reçue par 'RewriteRule' est en fait : /1400-16-article_d_essai_de_verification.html Elle n'est donc pas reconnue par votre regexp... -- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> |
|
|
|
#7 |
|
Messages: n/a
Hébergeur: |
Paul Gaborit wrote:
> Que vous avez du écrire : > > http://votre.serveur.com/1400-16-art...ification.html > > et la chaîne reçue par 'RewriteRule' est en fait : > > /1400-16-article_d_essai_de_verification.html > > Elle n'est donc pas reconnue par votre regexp... > non je fais : http://votre.serveur.com/ECOPUBLISH/...ification.html ma veritable url est : http://votre.serveur.com/ECOPUBLISH/...e_verification je dois faire ça ? RewriteRule /ECOPUBLISH/ecogenie/([0-9]),([0-9]),([a-zA-Z0-9_])\.html$ rubrique.php?vue=detail&aid=$1&stid=$2&titre=$3 [L] j'ai testé aussi : RewriteBase /ECOPUBLISH/ecogenie/ RewriteRule ^([0-9]),([0-9]),([a-zA-Z0-9_])\.html$ rubrique.php?vue=detail&aid=$1&stid=$2&titre=$3 [L] pas mieux bon , j'avoue que je nage un peu, si quelqu'un pouvait me donner une solution toute prete et qu'il m'explique un peu ça serait sympa. |
|
|
|
#8 |
|
Messages: n/a
Hébergeur: |
Le Mon, 12 Sep 2005 17:26:24 +0200, Paul Gaborit a écrit :
>> RewriteRule ^([0-9]+)-([0-9]+)-([^a-zA-Z0-9_]+)\.html$ >> rubrique.php?vue=detail&aid=$1&stid=$2&titre=$3 [L] > > Le ^ signifie debut de la chaîne. Or, à moins de faire vos requêtes > HTTP à la main ou avec un outil un peu exotique, votre chemin commence > toujours par / (la barre oblique) ! Pas forcément, par exemple si la règle de réécriture est dans un ..htaccess > et la chaîne reçue par 'RewriteRule' est en fait : > > /1400-16-article_d_essai_de_verification.html Ca dépend où est le RewriteRule. -- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news> |
|
|
|
#9 |
|
Messages: n/a
Hébergeur: |
Patrick Mevzek wrote:
> Le Mon, 12 Sep 2005 17:26:24 +0200, Paul Gaborit a écrit : > >>>RewriteRule ^([0-9]+)-([0-9]+)-([^a-zA-Z0-9_]+)\.html$ >>>rubrique.php?vue=detail&aid=$1&stid=$2&titre= $3 [L] >> >>Le ^ signifie debut de la chaîne. Or, à moins de faire vos requêtes >>HTTP à la main ou avec un outil un peu exotique, votre chemin commence >>toujours par / (la barre oblique) ! > > > Pas forcément, par exemple si la règle de réécriture est dans un > .htaccess > > >>et la chaîne reçue par 'RewriteRule' est en fait : >> >> /1400-16-article_d_essai_de_verification.html > > > Ca dépend où est le RewriteRule. > bon ok je m'en suis sorti en fait il suffisait que je mette la regle dans un .htaccess dans le repertoire du script et que je la nomme .htaccess a la place de .htacess ça marche mieux ![]() merci à tous |
|
|
|
#10 |
|
Messages: n/a
Hébergeur: |
> Le Mon, 12 Sep 2005 17:26:24 +0200, Paul Gaborit a écrit : >>> RewriteRule ^([0-9]+)-([0-9]+)-([^a-zA-Z0-9_]+)\.html$ >>> rubrique.php?vue=detail&aid=$1&stid=$2&titre=$3 [L] >> >> Le ^ signifie debut de la chaîne. Or, à moins de faire vos requêtes >> HTTP à la main ou avec un outil un peu exotique, votre chemin commence >> toujours par / (la barre oblique) ! À (at) Mon, 12 Sep 2005 19:04:47 +0200, Patrick Mevzek <pm-N200509@nospam.dotandco.com> écrivait (wrote): > Pas forcément, par exemple si la règle de réécriture est dans un > .htaccess Ce n'était pas préciser... et l'éparpillement des règles des réécriture dans de nombreux fichiers me semble un bon moyen de ne plus savoir du tout comment marche le serveur. Résultat: le posteur original a adopté votre solution sans comprendre pourquoi ses regexp ne marchaient pas. :-( -- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> |
|
|
|
#11 |
|
Messages: n/a
Hébergeur: |
Le Tue, 13 Sep 2005 10:51:53 +0200, Paul Gaborit a écrit :
> Patrick Mevzek <pm-N200509@nospam.dotandco.com> écrivait (wrote): >> Pas forcément, par exemple si la règle de réécriture est dans un >> .htaccess > > Ce n'était pas préciser... Le contraire non plus :-) > Résultat: le posteur original a adopté votre solution sans comprendre Ce n'est pas ma solution, je suis contre les RewriteRule dans les ..htaccess Je ne faisais que préciser votre assertion. -- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news> |
|
|
|
#12 |
|
Messages: n/a
Hébergeur: |
>> Résultat: le posteur original a adopté votre solution sans comprendre > > Ce n'est pas ma solution, je suis contre les RewriteRule dans les > .htaccess > Je ne faisais que préciser votre assertion. Ok. Donc tant pis pour lui ;-) -- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> |
|
|
|
#13 |
|
Messages: n/a
Hébergeur: |
Paul Gaborit wrote:
>>>Résultat: le posteur original a adopté votre solution sans comprendre >> >>Ce n'est pas ma solution, je suis contre les RewriteRule dans les >>.htaccess >>Je ne faisais que préciser votre assertion. > > > Ok. Donc tant pis pour lui ;-) > ben si vous pouviez m'expliquer pourquoi ? Il faut le mettre dans le httpd.conf ? en quoi c'est mieux que le .htacces ? si quelqu'un pouvait m'expliquer au moins une fois de A à Z (enfin pour mon exemple uniquement car le sujet est vaste) que je puisse comprendre mes erreurs. j'ai regardé la doc d'apache, mais il me faudrait plutôt le rewrite rule pour les nuls je crois. |
|
|
|
#14 |
|
Messages: n/a
Hébergeur: |
Le Tue, 13 Sep 2005 17:13:26 +0200, pollux a écrit :
>>>Ce n'est pas ma solution, je suis contre les RewriteRule dans les >>>.htaccess [..] > ben si vous pouviez m'expliquer pourquoi ? > > Il faut le mettre dans le httpd.conf ? en quoi c'est mieux que le .htacces ? Voilà en gros ce que je dis à mes étudiants au sujet des .htaccess et plus spécifiquement des RewriteRule pour ce qui vous intéresse. Il ne faut utiliser les .htaccess que si - il y a plusieurs personnes qui se chargent du serveur/du contenu - il faut pouvoir leur déléguer une partie de la configuration du serveur Dans les autres cas de figure (on est seul à gérer, ou plusieurs mais seule une personne doit s'occper de la configuration), il vaut mieux éviter les .htaccess car - c'est moins performant, Apache doit chercher sur le disque dur ces fichiers, de manière arborescente (bien sûr ce n'est pas significatif sur un serveur très peu consulté) - c'est plus dangereux, il faut qu'Apache soit réglé correctement, notamment pour que ces fichiers ne soient pas accessibles via HTTP, et assurer qu'on ne délègue que ce qu'il y a besoin exactement - c'est plus compliqué, quand on cherche une vue générale de la configuration, il faut prendre en compte tous ces fichiers, et appliquer les différentes configurations de manière hierarchique, en tenant compte des contextes, etc... Bref, je recommande vivement de n'utiliser les .htaccess que si on ne peut pas faire autrement, et sinon d'utiliser les fichiers de configuration standards d'Apache, plus d'autres par inclusion (typiquement le conseil que je donne : un fichier de configuration par virtualhost, nom du fichier = nom du virtualhost, et tous les fichiers dans un même répertoire, d'où Include <répertoire> directement dans Apache) Quant au RewriteRule... Le module mod_rewrite est un module générique de réécriture d'URL en nouvelles URLs (redirection HTTP) ou en chemin sur le disque (équivalent d'une redirection interne) C'est donc un sur ensemble de ce que mod_alias permet de faire. Mais l'élément d'entrée c'est normalement une URL. Quand on est dans un .htaccess, c'est qu'on n'est plus dans la vision logique/web avec les URLs mais dans une vision physique, puisqu'on cherche maintenant concrétement un fichier sur le disque dur pour répondre à la requête. Donc, le module mod_rewrite doit employer tout un tas de ruse pour faire le travail inverse, ie retrouver l'URL à partir du chemin physique, et faire son travail de réécriture. Pour moi, je trouve que ca complexifie énormément les choses, alors que mod_rewrite, par sa puissance est déjà suffisamment complexe (mais pas forcément compliqué, en tout cas dès qu'on maîtrise bien les expressions régulières/rationnelles) Donc ma recommandation est de ne pas mettre de RewriteRule dans les ..htaccess, de les laisser dans les fichiers de configuration Apache là où, en entrée on a une URL (plus précisément : la partie chemin local de l'URL, sans la query string), et où il est donc simple de faire les correspondances. Comme l'a dit Paul, à cet endroit, l'URL comment nécessairement par (et est au moins égale à) / puisque c'est le chemin local. Voilà, j'espère que c'est plus clair pour vous. -- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news> |
|
|
|
#15 |
|
Messages: n/a
Hébergeur: |
À (at) Tue, 13 Sep 2005 21:01:28 +0200, Patrick Mevzek <pm-N200509@nospam.dotandco.com> écrivait (wrote): > Le Tue, 13 Sep 2005 17:13:26 +0200, pollux a écrit : >> ben si vous pouviez m'expliquer pourquoi ? >> >> Il faut le mettre dans le httpd.conf ? en quoi c'est mieux que le .htacces ? > [... une explication claire...] > Voilà, j'espère que c'est plus clair pour vous. J'ajouterai juste que pour pouvoir utiliser correctement mod_rewrite (et d'autres modules), il faut apprendre à écrire les expressions rationnelles (ou regulières). Une fois qu'on sait ce qu'on reçoit et comment on peut le reconnaître et le transformer... c'est tout de suite plus facile ;-) -- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/> |
|
|
|
#16 |
|
Messages: n/a
Hébergeur: |
Paul Gaborit wrote:
> À (at) Tue, 13 Sep 2005 21:01:28 +0200, > Patrick Mevzek <pm-N200509@nospam.dotandco.com> écrivait (wrote): > >>Le Tue, 13 Sep 2005 17:13:26 +0200, pollux a écrit : >> >>>ben si vous pouviez m'expliquer pourquoi ? >>> >>>Il faut le mettre dans le httpd.conf ? en quoi c'est mieux que le .htacces ? >> > [... une explication claire...] > >>Voilà, j'espère que c'est plus clair pour vous. > > > J'ajouterai juste que pour pouvoir utiliser correctement mod_rewrite > (et d'autres modules), il faut apprendre à écrire les expressions > rationnelles (ou regulières). > > Une fois qu'on sait ce qu'on reçoit et comment on peut le reconnaître > et le transformer... c'est tout de suite plus facile ;-) > bah oui je sais, c'est mon probleme, je débute en regexp et c'est pas trop évident pour commencer, surtout que j'ai pas de temps pour m'y plonger une fois pour toute à 100% En tout cas merci pour les explications, j'ai une base sur laquelle partir |
|
|
|
#17 |
|
Messages: n/a
Hébergeur: |
bonjour,
juste une précision sur le rewriting ... j'avoue que je patauge un peu .... bon j'ai mis dans le .htaccess mes rewriterule ... çà fonctionne (sauf sur ovh où ils ont une syntaxe particulière) lorsque je rentre dans l'url par ex : index-1-r365r.html et donc il me renvoie la page adéquate index.php?var1=1&var2=r365r ok, mais quand j'utilise mon site les url sont toujours du type index.php?var1=1&var2=r365r le rewriting permet-il simplement que les moteurs de recherche convertissent les url ... là je nage complet parceque mes urls ne sont pas transformées ... est_ce qu'il faut en plus un script supplémentaire ? merci pour ze nioubiz ska |
|
|
|
#18 |
|
Messages: n/a
Hébergeur: |
Le Thu, 06 Oct 2005 06:04:08 -0700, ska a écrit :
> bon j'ai mis dans le .htaccess mes rewriterule ... çà fonctionne > (sauf sur ovh où ils ont une syntaxe particulière) lorsque je rentre > dans l'url par ex : index-1-r365r.html et donc il me renvoie la page > adéquate index.php?var1=1&var2=r365r > > ok, mais quand j'utilise mon site les url sont toujours du type > index.php?var1=1&var2=r365r C'est à vous de créer les urls dans le ``bon'' format au niveau de vos pages statiques ou dans vos applications. > le rewriting permet-il simplement que les moteurs de recherche > convertissent les url ... là je nage complet parceque mes urls ne sont > pas transformées ... C'est à vous de faire ce travail. -- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news> |
|
|
|
#19 |
|
Messages: n/a
Hébergeur: |
bonjour,
ok, çà veut dire en clair que lorsque je mets dans mon code un <a href=""></a> je dois les transformer sous la forme suivante index-',$var1,'-',$var2,'.html qui sera alors traduit via le .htaccess en index.php?var=$var1&var2=$var2 ? merci pour vos précisions. j'ai lu votre "cours" ... j'avoue n'être pas encore à la hauteur de vos étudiants. ska |
|
|
|
#20 |
|
Messages: n/a
Hébergeur: |
Le Thu, 06 Oct 2005 06:31:54 -0700, ska a écrit :
> ok, çà veut dire en clair que lorsque je mets dans mon code un <a > href=""></a> je dois les transformer sous la forme suivante > index-',$var1,'-',$var2,'.html Oui, dans la forme qui est traitée par vos RewriteRule. > qui sera alors traduit via le .htaccess > en index.php?var=$var1&var2=$var2 ? Quand quelqu'un ou quelque chose utilisera votre lien, cela arrivera sur votre serveur, et les RewriteRule transformeront l'adresse, oui. Je précise, pour bien voir que les 2 étapes sont asynchrones et non liées entre elles. > merci pour vos précisions. j'ai lu votre "cours" ... j'avoue n'être > pas encore à la hauteur de vos étudiants. Le cours Mise en oeuvre d'un serveur web (avec Apache) à la mairie de paris n'a pas lieu ce semestre, faute d'étudiants. Peut-être au second semestre, avant le couperet fatal :-) Donc: il y a peu de risque qu'il n'y ait pas assez de place au second semestre (hint hint...) -- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news> |
|
|
|
#21 |
|
Messages: n/a
Hébergeur: |
merci, maintenant je vois plus clair et effectivement çà fonctionne.
ce que je regrette c'est que les sites internet (très bon d'ailleurs) qui parlent de rewriting traitent uniquement du .htaccess mais ne traitent pas du sujet de a à z ... ce qui fait que je ne comprenais pas grand chose. dommage pour les cours ... mais de toute façon je suis dans le Gers au pays du foie gras. toutefois, je voudrais effectivement m'attaquer à çà puisque j'ai en projet de monter un serveur web perso sur mon ordi sous linux ... merci encore ska |
|
|
|
#22 |
|
Messages: n/a
Hébergeur: |
Le Thu, 06 Oct 2005 07:39:53 -0700, ska a écrit :
> dommage pour les cours ... mais de toute façon je suis dans le Gers au > pays du foie gras. toutefois, je voudrais effectivement m'attaquer à > çà puisque j'ai en projet de monter un serveur web perso sur mon ordi > sous linux ... Renseignez vous dans les mairies alentours, peut-être certaines ont-elles aussi des cours municipaux pour adultes comme à Paris. -- Patrick Mevzek . . . . . . Dot and Co (Paris, France) <http://www.dotandco.net/> <http://www.dotandco.com/> Dépêches sur le nommage <news://news.dotandco.net/dotandco.info.news> |
|
![]() |
| Outils de la discussion | |
|
|