Rewriter une URL avec un passage de variable

WRInaute discret
Hello à tous (et bonne année, tiens)...

Je suis en train d'essayer de faire en sorte que
Code:
lexique.php?mot=blah

soit accessible lorsque l'on tape
Code:
lexique/mot

Pour l'instant, tout ce que j'ai réussi à sortir de mon pauvre petit cerveau malade et embrouillé est
Code:
RewriteRule ^lexique\/([a-z]+)$  lexique.php?word=$1  [L]
mais, vous vous en doutez bien, ça ne marche pas :/

Etant donné que malgré toute ma bonne volonté, je suis (et resterai probablement) une brêle en ce qui concerne les regexp, et l'url rewriting par extension (bien que je continue à oeuvre dans ce sens)... est-ce que quelqu'un pourrait me dépanner ?

ça serait... franchement cool :)

Par ailleurs, n'aurai-je pas des modifications à faire dans le fichier robots.txt (je veux dire, une fois que j'aurai réussi // ou que qqun m'aura aidé !) ...

Merci d'avance à qui voudra bien me répondre...
 
WRInaute discret
Pourquoi tu fais
lexique.php?word=$1 [L]
si à l'origine tu as
lexique.php?mot=blah

Fais donc lexique.php?mot=$1 [L]
 
WRInaute discret
Pulsar-san a dit:
Pourquoi tu fais
lexique.php?word=$1 [L]
si à l'origine tu as
lexique.php?mot=blah

Fais donc lexique.php?mot=$1 [L]
Tout simplement parce qu'en vrai, ma variable s'appelle word : mon exemple ne collait donc pas avec ma ligne de code, mea culpa.

Quoiqu'il en soit, le pb ne vient pas de la... Merci quand mm :)
Je reformule, donc.

FrenchKiss a dit:
Je suis en train d'essayer de faire en sorte que
Code:
lexique.php?word=blah
soit accessible lorsque l'on tape
Code:
lexique/blah
Pour l'instant j'ai écrit
Code:
RewriteRule ^lexique\/([a-z]+)$  lexique.php?word=$1  [L]
Mais ça ne marche pas :(
 
WRInaute occasionnel
Tu travailles avec quels logiciels ou chez quel hébergeur ? Pour OVH :

RewriteRule ^lexique\/([a-z]+)$ /lexique.php?word=$1 [L]
 
WRInaute discret
pipologue a dit:
Tu travailles avec quels logiciels ou chez quel hébergeur ? Pour OVH :

RewriteRule ^lexique\/([a-z]+)$ /lexique.php?word=$1 [L]
Je suis chez phpnet - en php4, mysql etc... Classique, donc... et je code (ou plutot, j'essaie !) avec DW... mais je crois pas que ça change grand chose :)

Je vais essayer la ligne que tu me proposes, je te tiens au courant :)
-> verdict : marche pas :(
Merci quand même...
 
WRInaute discret
Oui :/
Voici le contenu du htaccess :
Code:
ErrorDocument  404  /404.htm
Options +followsymlinks
RewriteEngine On
RewriteRule ^lexique\/([a-z]+)$ lexique.php?word=$1 [L]

Je m'aperçois que le lien
-http://www.myserver.com/lexique?word=blah
fonctionne impec...
-> ?! Est-ce du fait de ma règle de réécriture ?? Ou bien est-ce typique que les pages puissent être appelées sans leur extension ?

Enfin bref, ça m'avance pas pour autant :(
 
WRInaute discret
Ne fonctionne pas non plus avec
Code:
RewriteRule ^lexique/(.*)$ lexique.php?word=$1 [L]

Alors, je suis le seul au monde à vouloir passer mes variables sous la forme de sous répertoires ?? :cry:
 
WRInaute discret
Quand tu fais
-http://www.myserver.com/lexique.php?word=blah
avec
Code:
ErrorDocument  404  /404.htm 
Options +followsymlinks 
RewriteEngine On 
RewriteRule ^lexique\/([a-z]+)$ lexique.php?word=$1 [L]
ça t'affiche quoi ?
 
WRInaute discret
Alors...
Ca m'affiche une page sur laquelle tous mes CSS ont sautés (elle s'affiche donc avec le CSS par défaut), et surtout
sans récupération de la valeur de la variable word.

J'ai donc pensé que ça venait de l'absence d'extension.
Erreur, ça ne fonctionne quand mm pas si je rajoute l'extension genre
RewriteRule ^lexique\/([a-z]+).php$ lexique.php?word=$1 [L]

En fait, j'ai réussi à déterminer que c'est le / qui pose problème.
A l'heure actuelle (j'ai un peu avancé), mon .htaccess ressemble à
Code:
ErrorDocument  404  /404.htm
Options +followsymlinks
RewriteEngine On
RewriteRule ^lexique-(.*)$ lexique.php?word=$1

Là ça fonctionne.
Vous remarquerez le tiret.
Avec un tiret : ça marche impec.
Avec un slash : ça foire.

J'ai essayé en l'échappant, en le faisant précéder d'un "\" : ça foire quand mm.

Je crois donc que le pb se situe à ce niveau, aussi si vous avez des idées, je suis preneur ("fait avec un tiret" n'est pas une bonne idée :p) ...

++
 
WRInaute discret
Zut ! Je me suis planté dans ma question :roll:
Je voulais demander quand tu fais:
-http://www.myserver.com/lexique/blah
Mais je pense qu'il faudrait désactiver ta page 404 personnalisée pour avoir le détail de l'erreur.
Je pense à une chose, essaye comme ça:

RewriteRule ^lexique\\/([a-z]+)$ lexique.php?word=$1 [L]

Avec 2 "\" devant le "/".
 
WRInaute discret
Hey :)
J'ai répondu en anticipant ta correction : ma réponse reste valable donc :)

J'ai également essayé avec 2 \ d'échappement devant le / ... Marche pas non plus, c'est à s'arracher les cheveux...
En revanche, si je tape l'adresse
lexique\/blah

Je me retrouve avec ma page pourrie (sans les CSS) MAIS qui affiche la variable (c'est déjà un début).
Par contre, l'url dans la barre d'url est pourrie elle aussi :
/lexique%5C/blah
c'est pas très esthétique ... :(
 
WRInaute discret
Tu peux me donner un lien qui te sert de test ?
Parce que là je n'y comprend plus rien :?
Il y a quelque chose qui nous échappe mais qui doit être évident :roll:
Au fait, tu ne naviguerais pas avec Firefox par hasard ?
 
WRInaute discret
Si je navigue avec Firefox :)
pkoi ? ça se voit à quoi ?

pour le lien, c'est
-http://frenchkiss.phpnet.org/lexique.php?word=blah

... pour l'instant, le .htaccess est paramètré de façon à ce que
-http://frenchkiss.phpnet.org/lexique-blah.html
fonctionne...

merci pour ton aide :)
 
WRInaute discret
FrenchKiss a dit:
Si je navigue avec Firefox :)
pkoi ? ça se voit à quoi ?
Ce qui me fait dire ça, c'est que j'ai remarqué que Firefox transforme en %xx ce qui ne lui parait pas standard.
J'ai eu le même problème avec des caractères accentués dans des noms de fichiers que mes membres upload (des images).

FrenchKiss a dit:
pour le lien, c'est
-http://frenchkiss.phpnet.org/lexique.php?word=blah

... pour l'instant, le .htaccess est paramètré de façon à ce que
-http://frenchkiss.phpnet.org/lexique-blah.html
fonctionne...

merci pour ton aide :)
C'est peut-être mieux comme ça.
Tu as testé si ça marche avec un mot composé ?
Je veux dire avec un "-" au milieu.
 
WRInaute discret
Ca marche impec avec un mot composé : le pb survient dès qu'un slash se balade dans la règle de réécriture...

J'abandonne donc l'idée du slash (pour l'instant) parce que j'ai vu sur plein de sites que c'était faisable : la méthode doit être différente, simplement...

Merci pour ton aide, en tt cas, et bonne continuation...
 
WRInaute discret
Après avoir contacté mon hébergeur, il semblerait que le pb vienne d'un "petit cafouillage" dans la configuration de Apache - j'attends donc qu'ils règlent ça...

Merci à tous pour votre aide, et la formation express à l'UR que j'ai pu me faire grace à vous :)
 
Discussions similaires
Haut