Je deviens chèvre: Nom de dossiers pour rewriting

Nouveau WRInaute
J'ai pourtant cherché sur ce site, on en parle...mais personne n'élucide clairement la problématique:

J'explique

Je cherche à augmenter mon PR en mettant un mot clef sous la forme de répértoire avant ma page finale,
par exemple, avant j'avais

http://www.monsupersite.com/la-pasteque.html

et je voudrais pouvoir écrire

http://www.monsupersite.com/la-pasteque ... teque.html

En sachant que le réperoire "la-pasteque" n'existe évidement pas

et que le fichier la-pasteque.html est en fait un fichier .php ou je vais chercher l'article en base de données (pour ça j'utilise le rewriting qui détecte que l'on demande une page .html...et passe le tout dans mon script PHP)

Alors comment je fais pour avoir ce fameux nom de répertoire identique au nom de la page générée?

http://www.monsupersite.com/la-pasteque ... teque.html

Merci de votre aide précieuse
 
Olivier Duffez (admin)
Membre du personnel
ceci ne changera rien à ton PR. Il pourrait plutôt le faire baisser... non je rigole.
quel est l'intérêt de rallonger comme ça tes URL ? Ne fais-tu pas une fixation sur les noms des répertoires et des fichiers ?
 
WRInaute discret
tu prend le rpob dans le mauvais sens

enfin si je t'ai bien compris.

ce n'est pas ton nom de rep qui doit etre identique au nom du fichier genere mais lorsque tu entre l'url avec le repertoire, ceci doit retourner vers ton fichier php. Voici ce que tu doit mettre ds ton .htaccess

RewriteRule ^la-pasteque/([a-z]+).html$ la-pasteque.php [L]
 
Nouveau WRInaute
Re: tu prend le rpob dans le mauvais sens

Tchinkatchuk a dit:
enfin si je t'ai bien compris.

ce n'est pas ton nom de rep qui doit etre identique au nom du fichier genere mais lorsque tu entre l'url avec le repertoire, ceci doit retourner vers ton fichier php. Voici ce que tu doit mettre ds ton .htaccess

RewriteRule ^la-pasteque/([a-z]+).html$ la-pasteque.php [L]

J'ai l'impression que l'on est sur la bonne voie en effet...

Je pense effectivement que je prenais le problème dans le mauvais sens.

Maintenant le soucis c'est que je vais pas réecrire une rêgle pour chaque nom de fruit et légume...j'en ai au moins 2000...arg


DOnc comment prendre tout? ça ferai un truc du genre:

RewriteRule ^(.*)/([a-z]+).html$ traitement.php?fruit=$1 [L][/quote]

Mais l'autre petit soucis...c'est que j'ai quand même de vrais répertoires, avec de vrais fichiers .html dedans, et que ceux la je veux pas les faire passer dans la moulinette traitement.php! Alors comment faire?

il y a peut être une piste avec RewriteBase / , non?
En fait l'idéal serai de faire une sorte de controle genre si le nom du répertoire demandé est le meme que le fichier , alors je le passe dans le traitement PHP, sinon je renvois sur le vrai fichier

Mais j'ai l'impression que l'on risque de tourner en boucle avec Apache

Merci

Léa
 
Nouveau WRInaute
Re: tu prend le rpob dans le mauvais sens

SUis de retour, comme c'est un ami qui m'avait inscrite...Merci PARISIEN, mais en fait je suis Léa moieuhhhhhhhhh :)

Bon en fait j'arrive à le faire marcher en prenant le répertoire , donc ça marche..

MA question est maintenant plus difficile:
en fait mon script de traitement est déjà dans un répertoire:
genre,

http://www.monsite.com/traitement/

quand j'appelle la page

http://www.monsite.com/traitement/la-pa ... teque.html

ça renvoie grace à l'url rewriting vers la page
http://www.monsite.com/traitement/traitement.php

mais je voudrai que l'url qui s'affiche ou que les moteurs de recherces voient soit
au final:
http://www.monsite.com/la-pasteque/la-pasteque.html

COmment donc enlever ce nom de répertoire /traitement/ de mon url?

Merci les petits loups

Léa
 
WRInaute discret
comparaison avec majuscukles et minuscules

mes nom derepertoires commentcent par des majuscules et se continuent par des minuscules. du soup ma comparaison marche pas.

RewriteRule ^annuaire/([a-z]+)/([a-z]+)/([a-z]+)/([a-z]+)_([0-9]+)\.html$ annuaire/liste.php?num_gv=$4&id_village=$5 [L]


c con comme question, je sais, mais qd on sait pas cons eh ben on est ds la ...

merci d'avance
 
WRInaute occasionnel
Code:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule...

L'option -d sert à tester si il s'agit d'un dossier existant.
Dans l'exemple si dessus, la règle de réécriture ne sera exécutée que si REQUEST_FILENAME n'est pas un dossier existant.
J'utilise avec succès cette option pour mon site (dans un but totalement différent de celui discuté ici).

Plus d'informations :
http://httpd.apache.org/docs/mod/mod_re ... ewriteCond
http://httpd.apache.org/docs/misc/rewriteguide.html

Toutefois, je ne pense vraiment pas que ça puisse améliorer le PR que de trafiquer les URLs de cette manière.

Jocelyn
 
Discussions similaires
Haut