[4.3]proposition approche urlrewriting simplifié, testez
gcyrillus-nomade
Member
Bonjour,
A l'occasion de cette version stable , je propose de tester une nouvelle approche sur une réecriture d'url partielle dans Pluxml ,en ne touchant que deux fichiers :index.php et feed.php.
Une mise a jour est relativement aisé ,en faisant un backup de ces deux fichiers ou en y reportant les modifications .
Cette approche enleve le 'point d'interrogation dans les url coté public et flux , pour les articles , rubriques , page statiques et pagination.
Celles-ci peuvent etre renommer : static en extra par exemple.
Les url relatives sont gerer par la balise <base> sans avoir a modifier vos thèmes.
Les url vers les flux , et dans l'administration ne sont pas réécrites.
Un fichier htaccess est ajouté a la racine et contient ceci :
edition: m.a.j de l'exemple pour prendre en charge l'exemple des pages statique virtuellement placé dans extra/
Ceci est une version test , non configurable a l'install ni au travers de l'admin et a ne pas utiliser sur un serveur free .
A vous les critiques
Bonne année
<edit maj du lien de telechargement >
A l'occasion de cette version stable , je propose de tester une nouvelle approche sur une réecriture d'url partielle dans Pluxml ,en ne touchant que deux fichiers :index.php et feed.php.
Une mise a jour est relativement aisé ,en faisant un backup de ces deux fichiers ou en y reportant les modifications .
Cette approche enleve le 'point d'interrogation dans les url coté public et flux , pour les articles , rubriques , page statiques et pagination.
Celles-ci peuvent etre renommer : static en extra par exemple.
Les url relatives sont gerer par la balise <base> sans avoir a modifier vos thèmes.
Les url vers les flux , et dans l'administration ne sont pas réécrites.
Un fichier htaccess est ajouté a la racine et contient ceci :
edition: m.a.j de l'exemple pour prendre en charge l'exemple des pages statique virtuellement placé dans extra/
RewriteEngine on
#avant de lancer la reecriture , on verifie que les repertoires ou fichiers demander existent (accés admin , images par exemple)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l
# Et enfin si la page demander ne correspond pas a un fichier ou repertoire existant , on applique la réecriture.
#reinjection du systeme d'url de pluxml . original et tri sur modification
RewriteRule ^(!extra|article|page|categorie)(.*)$ ?$1$2 [L]
RewriteRule ^extra([0-9])(.*)$ ?static$1$2 [L]
Le fichier index.php :
<?php
# ------------------ BEGIN LICENSE BLOCK ------------------
#
# This file is part of PluXml : http://pluxml.org/?categorie3/a-propos-de-pluxml
#
# Copyright (c) 2008-2009 Florent MONTHEL and contributors
# Copyright (c) 2006-2008 Anthony GUERIN
# Licensed under the GPL license.
# See http://www.gnu.org/licenses/gpl.html
#
# ------------------- END LICENSE BLOCK -------------------
# Configuration avançée #
define('PLX_ROOT', './');
define('PLX_CORE', PLX_ROOT.'core/');
define('PLX_CONF', PLX_ROOT.'data/configuration/parametres.xml');
# On verifie que PluXml est installé
if(!file_exists(PLX_CONF)) {
header('Location: '.PLX_ROOT.'install.php');
exit;
}
# On inclut les librairies nécessaires
include(PLX_ROOT.'config.php');
include(PLX_CORE.'lib/class.plx.date.php');
include(PLX_CORE.'lib/class.plx.utils.php');
include(PLX_CORE.'lib/class.plx.capcha.php');
include(PLX_CORE.'lib/class.plx.erreur.php');
include(PLX_CORE.'lib/class.plx.glob.php');
include(PLX_CORE.'lib/class.plx.record.php');
include(PLX_CORE.'lib/class.plx.motor.php');
include(PLX_CORE.'lib/class.plx.feed.php');
include(PLX_CORE.'lib/class.plx.show.php');
include(PLX_CORE.'lib/class.plx.encrypt.php');
# Creation de l'objet principal et lancement du traitement
$plxMotor = new plxMotor(PLX_CONF);
$plxMotor->prechauffage();
$plxMotor->demarrage();
# Creation de l'objet d'affichage
$plxShow = new plxShow($plxMotor);
# On démarre la bufferisation
ob_start();
# On charge les fichiers du thème
if($plxMotor->style == '' or !is_dir(PLX_ROOT.'themes/'.$plxMotor->style)) {
header('Content-Type: text/plain');
echo 'Le theme principal PluXml est introuvable ('.PLX_ROOT.'themes/'.$plxMotor->style.') !';
} elseif(file_exists(PLX_ROOT.'themes/'.$plxMotor->style.'/'.$plxMotor->mode.'.php')) {
# On impose le charset
header('Content-Type: text/html; charset='.PLX_CHARSET);
# Insertion du template
include(PLX_ROOT.'themes/'.$plxMotor->style.'/'.$plxMotor->mode.'.php');
} else {
header('Content-Type: text/plain');
echo 'Le fichier cible PluXml est introuvable ('.PLX_ROOT.'themes/'.$plxMotor->style.'/'.$plxMotor->mode.'.php) !';
}
#variables pour la reecriture des liens dans la page
/* ne pas modifier les valeurs de la ligne suivante */
$original = array('?article','?categorie','?static','?page','<head>');
/* valeurs modifiée aprés traitement , vous pouvez renommer les 3 premiere */
$rewrote = array('article','categorie','extra','page','<head>
<base href="'.$plxMotor->racine.'" />');
#recuperation et modification du buffer traité
/* remplacement des valeurs d'origine $original par $rewrote */
$input = str_replace($original, $rewrote, ob_get_contents());
#on nettoie le buffer
ob_end_clean();
#on affiche notre page réecrite
echo $input ;
?>
et le fichier feed.php :
<?php
# ------------------ BEGIN LICENSE BLOCK ------------------
#
# This file is part of PluXml : http://pluxml.org/?categorie3/a-propos-de-pluxml.
#
# Copyright (c) 2008-2009 Florent MONTHEL and contributors
# Copyright (c) 2006-2008 Anthony GUERIN
# Licensed under the GPL license.
# See http://www.gnu.org/licenses/gpl.html
#
# ------------------- END LICENSE BLOCK -------------------
# Configuration avançée #
define('PLX_ROOT', './');
define('PLX_CORE', PLX_ROOT.'core/');
define('PLX_CONF', PLX_ROOT.'data/configuration/parametres.xml');
# On verifie que PluXml est installé
if(!file_exists(PLX_CONF)) {
header('Location: '.PLX_ROOT.'install.php');
exit;
}
# On inclut les librairies nécessaires
include_once(PLX_ROOT.'config.php');
include_once(PLX_CORE.'lib/class.plx.date.php');
include_once(PLX_CORE.'lib/class.plx.utils.php');
include_once(PLX_CORE.'lib/class.plx.glob.php');
include_once(PLX_CORE.'lib/class.plx.record.php');
include_once(PLX_CORE.'lib/class.plx.motor.php');
include_once(PLX_CORE.'lib/class.plx.feed.php');
#mise en place d'un tampon qui va contenir notre objet
ob_start();
#variables pour la reecriture des urls en dur
/* ne pas modifier les valeurs de la ligne suivante */
$original = array('?article','?categorie','?static');
/* valeurs modifiée aprés traitement , vous pouvez les renommer */
$rewrote = array('article','categorie','extra');
# Creation de l'objet principal et lancement du traitement
$plxFeed = new plxFeed(PLX_CONF);
$plxFeed->prechauffage();
$plxFeed->demarrage();
#modification de l'objet traité
/* remplacement des valeurs d'origine $original par $rewrote */
$input = str_replace($original, $rewrote, ob_get_contents());
#on vide le tampon
ob_end_clean();
#on affiche notre objet modifié
echo $input ;
?>
Une archive de la V4.3 modifiée (comme ci dessus) est téléchargeable : http://www.doc-css.com/plx4.3urw/demo/?telechargement/Li4vLi4vZGF0YS9kb2N1bWVudHMvcGx1cnd4LnppcCpjNzYxYjM,Ceci est une version test , non configurable a l'install ni au travers de l'admin et a ne pas utiliser sur un serveur free .
A vous les critiques
Bonne année
<edit maj du lien de telechargement >
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Je viens de mettre en ligne une démo avec le moteur de recherche que bg62 utilise(non-oficiel) http://forum.pluxml.org/viewtopic.php?pid=11352 et la page contact du wiki http://wiki.pluxml.org/?page=Ajouter%20un%20moteur%20de%20recherche%20dans%20une%20page%20statique
Un zip contenant la demo est dispos dans l'unique article .
J'attendais quelques avis , opinions et critiques d'utilisateurs éclairés ou non , ainsi que des suggestions pour le type d'url que les uns ou les autres voudraient voir ou estimeraient plus significatives .
Un sondage d'opinion en quelque sorte pour eventuellement arriver a un truc interessant .
++
demo : http://www.doc-css.com/plx4.3urw/demo/
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
Je n'ai pas encore essayé ton approche de l'url rewrite, mais pour ma part le principal reproche que j'ai à faire à pluxml concerne les urls...
De mon côté je suis parfois embetté lorsque j'utilise pluxml en affichant uniquement les catégories, car les articles font doublons!
Je vais essayer ta méthode pour supprimer les points d'interrogation, je te fais un retour dans la journée.
Merci pour ton idée, sache que sans être très ému ça va tout de même beaucoup m'aider
Je te donnerai donc mon avis plus tard, une fois placé en ligne
merci pour ta tentative , pas de chance
Pour l'erreur 403 peut-etre une configuration de fichier httpd.conf qui force a passer par un fichier index par exemple ?
retour de bug interessant en tout cas . je vais voir si je peut le provoquer en local via httpd.conf , si oui , il faudra juste modifier le htaccess en conséquence.
++
<edit> tentative infructueuse de reproduire l'erreur 403 de mon coté , en jouant sur certaine options comme indexes ou multiview .
Autres questions :
as tu fait l'install dans un sous repertoire et y-at-il déja un htaccess dans le repertoire racine ou un repertoire parent
est-il possible d'avoir un aperçu de ton fichier httpd.conf (dans le repertoire apache )
veut tu modifier le fichier htaccess pour passer par la page index.php
comme ceci (en fait seul les deux derniere lignes sont differentes ): Merci
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
nouvel utilisateur de PluXml (j'ai fait une 1ère installation la semaine dernière), je suis ravi de voir une possibilité d'url rewriting.
Je l'ai testée, elle fonctionne chez moi en local sur xampp 1.7. J'ai du coup une demande spécifique : est-il possible de virer le chiffre/id attribué/e à chaque page statique dans l'url ? Si oui, comment ?
Merci d'avance.
non , le chiffre est nécessaire a pluxml pour retrouvé quel fichier (article ou static) qu'il doit traité et affiché.
On peut deplacé ce chiffre dans l'url . en debut , fin ou le taxé de repertoire : (1/static/page , ou static/1/page , ou static/page/1 ).
On pourrait aussi par exemple : rewriter :
?article-x en article-x ,
?categorie-x en rubrique-x
et ?static-x en -x .
(voir les variables $rewrote et mettre a jour le masque dans htaccess)
Dans tout les cas , le chiffre reste necessaire (ne pas hesiter a me contredire si j'ai zappé un truc sur la gestions des url dans pluxml) ) et l'on ne pourrait faire disparaitre qu'un seul nom de type de contenu : static , page , article , categorie (ou telechargement et (les fils rss atom) : pas pris en charge dans la demo)
L'url rewrite a ses limites (mes compétences aussi )
Il faut faire avec le fonctionnement de pluxml et rester au plus simple et leger pour rester dans l'esprit de ce CMS particulier .
L'idée serait d'arriver a trouver un (compromis) type d'url qui conviennent a tous avec un avis (favorable) de la part de l'equipe de Pluxml .
Désolé pour les chiffres
Merci de ton retour .
Cordialement , GC
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
du coup j'ai une adresse du style http://monsite/1/mapagestatique ce qui est plutôt bien quand même.
- un mot clé pour identifier le mode (Tomek, je ne sais pas comment tu fais pour matcher que ton url est une page statique...)
- l'id unique de la ressource (article, page statique, categorie, etc)
Cela ne peut fonctionner que pour l'un des mots clé , on ne peut produire ce type d'url que pour un seul type de contenu (ou mode) .
Pluxml reçoit toujours ses requête via ses url native , il n'y a que l'utilisateur qui se sert des URL rewriter ...
Cordialement
GC
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
Je vient de tester l'url rewritting, ça marche nickel par contre j'ai une petite question :
Est-il possible de rewritter de la même manière les url provenant du sitemap.php histoire d'obtenir une certaine cohérence sous google ?
Je suis entrain de tenter la chose mais si quelqu'un à déjà ça dans les tuyaux...
___
Red
c'est en principe deja le cas si tu lis bien (et observe bien les liens servis par
http://www.doc-css.com/plx4.3urw/demo/sitemap.php ):
les fichiers concerné sont : index.php , sitemap.php et feed.php et le fichier .htaccess ajouter pour faire tourner l'ensemble .
Les url rewritées sont dans l'exemple téléchargeable : ?article , ?static , ?page et ?categorie .
la maniere de faire peut-etre etendue a ?telechargement aussi (suffit de la rajouter dans les variable $original et $rewrote ainsi que le masque dans le fichier .htaccess.)
le zip en 4.3 : http://www.doc-css.com/plx4.3urw/demo/?telechargement/Li4vLi4vZGF0YS9kb2N1bWVudHMvcGx1cnd4LnppcCpjNzYxYjM,
La mise a jour vers la 4.3.1 est en principe relativement simple :
garder les fichiers index.php , sitemap.php et feed.php de cette version modifié mettez a jour es autres.
GC
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
Merci encore et bon week-end.
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
si la mode est en ce moment à l'url rewriting, pour un blog qui débute, soit, mais si je prends l'exemple du mien lorsqu'un article est créé, il faut aussi penser à l'impact et dans ce cas, il est pris par google de plusieurs manières:
- dans le flux rss
- dans le plan du site (on n'a jamais fait mieux pour tous les moteurs ...)
- dans l'url 'normale' (générale du site, basée sur son titre)
- dans l'url 'normale' + le n° de l'article
- dans l'url 'normale" + le n° de l'article + le nom de l'article
etc ... ce qui me va très bien ainsi !
finalement (sans compter les traces qui sont prises également, venant des catégories (last article) dans la side barre ce n'est pas un lien qui est pris, mais un minimum de 5, par google sans aucun problème ...
>>> Si de plus le blog est configuré, déclaré, et référencé comme véritable sous-domaine, un lien sur le domaine principal, vous multiplie encore ça quasiment par 2
Le but du jeu est d'être ensuite trouvé sur le Net, donc lorsque je mets un article, quelques heures après il peut être trouvés, grâce aux mots clés sous une foule d'option de résultats dans les recherches, ce qui me convient donc super bien, encore une fois, et ceci sans "tricheries" !
Alors pour les fans , le principe est bon certes, mais pour les futures versions, de grâce ne les basez pas sur ce système, mettez-le en option ...
encore une fois , c'est un avis personnel et peut-être aussi une piste de réflection ...
qu'en pensez-vous ?
mes sites principaux : fonds d'écran gratuits - longue traîne - référencer votre site - brocante en ligne -
D'ailleurs je ne vois rien dans la roadmap a ce sujet et j'imagine mal Pluxml imposé ça .
Cette option ne devrait pas etre non plus rigide , L'url rewriting est généralement miss en place après reflexions et eventuels besoins (referencement ? , marketing , langage du site , ... a chacun ses stratégies ), si un type d'url convient a l'un , ce n'est probablement pas le cas pour un autre .
Perso je suis aussi convaincu que coté référencement , pluxml n'a pas besoin de ça , le contenu restera roi de toute façon mais bien fait ça ne fait pas de mal , puis remplacer les mots rubrique et categorie par d'autres pour un site 'plaquette' par exemple peut-etre une bonne idée.
Pour basculer sur l'url rewriting sur un site deja en place , il faudra simplement penser a faire une redirection 301 pour ne pas perturber google outre mesure et eviter le duplicate content ([R=301,L] ) ce que j'ai fait sur un site a l'abandon , le passage d'un type d'url a une autre s'est fait sans probleme et en quelque jours , peut-etre ai je été chanceux. J'envisage d'ailleurs de renouveler le test a l'occasion d'une
mise a jour sur un site que je tient a garder.
Le fichier .htaccess ne sert pas qu'a faire de l'url rewriting , il peut y avoir d'autre aspect utiles et est complementaire bien souvent.
GC
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
mes sites principaux : fonds d'écran gratuits - longue traîne - référencer votre site - brocante en ligne -
Il est évident pour nous que nous n'imposerons jamais un style d'url. Au mieux il y aura plusieurs choix, à sélectionner dans le paramétrage de l'admin. A l'utilisateur de choisir ce qu'il préfère. Par défaut ce sera toujours la solution qui fonctionne sur tous les hébergeurs.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
mes sites principaux : fonds d'écran gratuits - longue traîne - référencer votre site - brocante en ligne -
Si c'est possible de faire quelque choses merci
En principe le fichier sitemap.php pour la version 4.3 devrait ressembler a ceci (mot clés : article , categorie, extra ) :
article
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
Merci beaucoup
http://pluxml.org/#static3/nous-soutenir à la place de http://pluxml.org/?static3/nous-soutenir
je ne sais pas trop , l'idée parait bonne au premier abord , et permettrait de s'affranchir de l'url rewriting a priori si je te suis bien .
D'un autre coté cela réduirait virtuellement PluXml a une seule page avec une multitude d'ancre , fonctionnant comme si c'etait gerer en ajax . Je me demande si on risque pas des télescopage avec certains script js , ou l'historique de navigation par exemple .(reponse hative).
J'ai quand même le sentiment que le ? est plus pertinent que le # .
cordialement , GC
Cordialement,
gcyrillus , simple membre du forum et utilisateur de pluxml
Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci
C'est clair que certaines choses poseraient pb comme les liens internes etc.
C'est en naviguant sur GMAIL que j'ai eu cette idée...