HTACCESS url rewrite et dossier virtuel

Eléphant du PHP | 372 Messages

19 déc. 2017, 21:58

Bonjour,
Voilà je présente l'idée et je pense que cela peut interessé pas mal de personne.

J'ai actuellement à la racine de mon site une page idee.php

qui recoit différent parametre selon une page qui est également à la racine de mon site actu.php

Exemple de lien actuel depuis la page actu.php
<a href="idee-deco-de meuble-grenoble-15.html">deco de meuble</a>

pour cela cotté htaccess j'ai donc:
# -- offres.php
RewriteRule ^idee-([A-Za-z0-9_-]+)-([A-Za-z0-9_-]+)-([0-9_-]+).html$ idee.php?titre=$1&ville=$2&id=$3

L'idée est que en gros les urls passent de par exemple à :
idee-deco-de meuble-grenoble-15.html
à
idee/deco-de meuble/grenoble/15.html

Mais sachant que les / représente normalement des dossier là pour le coup c'est du virtuel...
Donc mon problème est de savoir dois je faire quelque chose de particulier ? Cela est il un frein à l'indexation du site (dossier virtuel)

ou je remplace mes - par des / dans ma régle et hop c'est bon.
Merci à vous pour vos retours

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

20 déc. 2017, 11:59

Tu remplaces tes - par des / dans ta règle et hop c'est bon ;)

Et accessoirement ça réglera le problème que tu dois rencontrer lorsque l'une de tes valeurs contient des tirets :)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 643 Messages

26 déc. 2017, 23:45

Bonsoir,
Mon problème de réécriture est réglé mais par exemple du coup suivant les parametres j'ai plus ou moins de / dans mon url ( donc dossier virtuel ) du coup l'appel à feuilles de style change en fonction des parametres appelé.

Il y a t'il un moyen de rélgler cela ?
Dois je faire absolument cela en PHP avec des conditions ?

Merci pour vos retours. :wink:

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

29 déc. 2017, 11:00

Le plus simple c'est d'appeler tes feuilles de styles avec des liens relatifs à la racine de ton nom de domaine, c'est à dire en commençant par un slash /

Exemple :

Code : Tout sélectionner

<link rel="stylesheet" href="/styles/PHPfrance/theme/phpfrance.css" type="text/css" class="color-theme" />
Pointera toujours vers ce fichier quelle que soit le répertoire (virtuelle ou pas) de la page
Quand tout le reste a échoué, lisez le mode d'emploi...

Avatar du membre
Mammouth du PHP | 1564 Messages

16 janv. 2018, 10:54

Bonjour,

attention à vos conditions dans le fichier htaccess, actuellement vous acceptez des id avec: des entiers, des tirets et des underscores:

Code : Tout sélectionner

RewriteRule ^idee-([A-Za-z0-9_-]+)-([A-Za-z0-9_-]+)-([0-9_-]+).html$ idee.php?titre=$1&ville=$2&id=$3
j'enlèverais également les lettres majuscules de l'URL finale mais c'est mon point de vue