Utilisation du Flag E

  • Auteur de la discussion Auteur de la discussion bourbaki
  • Date de début Date de début
Nouveau WRInaute
Bonjour,

J'utilise spip 1.8 avec l'option url propres pour ceux qui connaissent.

Voilà une règle de réécriture du fichier .htacces pour les brèves :

Code:
# Les breves
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^\+[^/\.]+\+$ breve.php3 [QSA,E=url_propre:$0]

Pour la brève 48 par exemple :

http:/monsite.org/+titre-de-ma-breve+
devient
http:/monsite.org/breve.php3?id_breve=48

Les rewritecond vérifient que ce n'est pas un fichier ni un dossier qui est demandé.

Par contre je ne comprends pas comment agit le flag E :

url_propre est un champ de table mysql de la brève 45 qui a pour valeur 'titre-de-ma-breve'.

Si quelqu'un pouvait me donner quelques explications.

Merci.
 
WRInaute discret
C'est marrant, je viens juste de regarder comment ça marchait pour pouvoir faire une adaption sur mon site (qui fonctionne avec spip mais les choix faits pour url_propre ne me conviennent pas tout à fait).

Comme le disait shrom, le paramètre E fixe une variable d'environnement. Ensuite c'est le fichier php qui s'occupe de la récupérer et de venir la comparer avec la base de données. Si tu regardes le fichier inc-url-propres.php3, tu verras comment sont générés les liens et comment la base de données est remplie pour éviter de refaire plusieurs fois la même chose.
 
Nouveau WRInaute
Merci pour les infos.

Je me suis débrouillé sans finalement.

J'ai bricolé le fichier inc-urls-propres pour avoir ce que je voulais.

Le problème c'était de faire suivre les anciennes adresses vers les nouvelles avec un en-tête 301.
J'y suis arrivé en utilisant une redirection des anciens articles et brèves vers un fichier php sur mesure.

Les modifs sont en ligne sur le site dans mon profil.

Par contre j'ai une autre question dont je ne trouve pas la réponse :
Comment voir si mon en-tête 301 est bien envoyé ?

@+
 
WRInaute discret
Pour la redirection des anciennes adresses, j'ai utilisé le fichier spip_redirect.php3 (utilisé pour accéder à un article à partir de l'espace privé) que j'ai modifié pour qu'il renvoie un en-tête avec redirection 301. Ca évite d'avoir à refaire le script.

Pour voir si l'en-tête est 301, je crois qu'il y a un outil qui permet d'afficher les en-têtes envoyés sur WRI.
 
Discussions similaires
Haut