Url avec ? et UrlRewrite
flipflip
Member
Bonjour à tous.
Est-ce que dans les prochaines versions il est prévu de supprimer les ? Des url et de passer sur un système à base de re-écriture d'url ?
La raison est simple, le ? est pas top pour le référencement et la re-écriture d'url est bien plus souple.
Est-ce que dans les prochaines versions il est prévu de supprimer les ? Des url et de passer sur un système à base de re-écriture d'url ?
La raison est simple, le ? est pas top pour le référencement et la re-écriture d'url est bien plus souple.
J'ai un string de l'array
0
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
le problème avec l'url rewriting ce que tous les hébergeurs ne le propose pas et étant donné que Pluxml ce veut le plus ouvert possible je ne pense pas que les développeurs répondrons favorablement à ta demande. En revanche je pense qu'il serait judicieux de proposer cette fonctionnalité dans le Wiki pour ceux que ça intéresse.
Je prend exemple sur la gestion des catégories. Actuellement l'url ressemble à http://www.monsite.fr/?categorie1/nomcategorie, une url dans le genre http://www.monsite.fr/categorie/nomcategorie-1 serait plus logique. Ce soir je jette un œil côté code si c'est possible.
Le problème est que tout ce qui est après le ? est considéré souvent par les moteurs de recherches comme des paramètres donc inutile de les indexer.
J'ai un string de l'array
Pour l'url rewriting , ne pas oublier de gérer aussi l'accès a l'administration
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 | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci
J'ai un string de l'array
En résumé , le mode d'url génré par pluxml n'est pas un handicap a son indexation.
Par contre :
monsite/?categorie1/machin_chose
monsite/index.php?categorie1/machin_chose
www.monsite/?categorie1/machin_chose
www.monsite/index.php?categorie1/machin_chose
est lui un handicap certain : 4 url pour une page unique , sans compter les pages dénué de chapo , ou de content ... qui peuvent donner jusqu'a 4 url pour un même contenu
En moyenne on est a 4 url par page possible si l'on y aucune attention.
Il faut donc voir le problème de référencement ailleurs que dans la syntaxe de l'url elle-même. (a mon humble avis).
Voici ce que je met pour les hebergement qui ont besoin d'un referencement correct dans un htaccess :
RewriteEngine on RewriteCond %{HTTP_HOST} ^monsite.com$ RewriteRule ^(.*) http://www.monsite.com/$1 [QSA,L,R=301] RewriteRule ^index\.php$ / [QSA,L,R=301]qui fome l'url en www et sans index.php .sur l'une des quatre url en exemple ci-dessus , on retombe toujours sur :
www.monsite.com/?var
et la page d'acceuil : www.monsite.com/
(Cette solution ne marche pas dans free )
En dernier lieu , il est vrai que l'url
?article1/nom-de-l-article
reste moyenne et ambigu , mais ne ressemble pas a
?var1=yyy&var2=zzz&var3=ho!
Cordialement
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 | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci
Forcement c'est toujours mieux avec la version actuel, mais comme l'a dit fightsoul, l'urlRewrite n'est pas géré par tout les hébergeurs.
En fait je me demande le pourquoi du ? dans les url de pluxml ? Puisque la forme classique var=1 n'est pas utilisée alors il me semble que c'est difficilement récupérable par $_GET.
Une autre raison du ? qui pose problème sauf que cette fois c'est avec les pages statiques. J'ai créer une page qui envoie un mail de validation, l'utilisateur doit cliqué sur un lien qui ressemble à : http://www.monsite/?static1/creer-un-compte/?cle=123456789. En temps normal je récupère je récupère la valeur de cle avec $_GET le hic est que ça va difficilement faisable puisque il y a déjà un ? au début donc le second n'est pas considéré comme un segment de variable. La solution remplacé le second ? par & ce qui donne http://www.monsite/?static1/creer-un-compte/&cle=123456789 mais ça comme à être un peu du n'importe quoi.
Ton code pour le htaccess marche bien au contraire
J'ai un string de l'array
On a donc besoin de récupérer de cette façon (?article1/mon-article) une chaine (ici => article1/mon-article) que le controleur plxMotor pourra analyser pour lancer les traitements adéquates...
entre deux escales estivales , je dépose en demo ici : http://doc-css.com/urw-pluxml/ une version de pluxml qui peut fonctionner en urlrewriting ou en version classique.
l'archive test est donc la : http://doc-css.com/urw-pluxml/telechargement/dXJ3LXBsdXhtbC56aXAqOGNjOTJm
ou ici (si vous ne souhaitez pas tester le lien réecrit : http://doc-css.com/urw-pluxml/?telechargement/dXJ3LXBsdXhtbC56aXAqOGNjOTJm
Pour que cette version marche , sans remanier le système des url et en n'enlevant que le ? (.... qui semble en gêner beaucoup
Je reprecise que l'urlrewriting ne marche pas sur free , et que si vous tentez malgré tous de l'activer a l'installation , vous allez droit au devant de bugs
@marama et @stephane , les modification serait plutôt mineur si les url de pluxml ne comportaient pas de / , les chemins relatifs serait alors compatibles , seul le point d'interrogation et le fichier htaccess serait a gérer.
Bonnes vacances et bon test a tous ....
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 | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci
Je suis en mode vacances pendant 10 jours. Je regarde ça en détails dès mon retour.
Merci en tout cas pour t'être penché sur le problème qui fera surement avancé le sujet
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Merci
J'ai un string de l'array
good job!
J'ai un string de l'array
Il y a aussi le fichier d'install qui créé le .htaccess
Gcyrillus, j'oublie des choses ?
Merci
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
@Stephane .
En regle generale j'ai repris tout les chemin de type "./" produits par les differentes fonction de plxShow avec : $this->linkit; ou $this->aConf
(La demo ne voit pas cette correction faites sur le ficher feed.php qui en aurait aussi besoin , autant pour prouire les deux liens vers les fills , que ceux des commentaires ou articles mis en lien )
Le fichier parametres.xml , embarque aussi un champs supplementaire , ce champ supplementaire est en type hidden , sur le formulaire dans l'admin de façon a conserver la config de l'urlrewriting. (accessible par aConf ) .
Je rejette un oeil au script ce soir en rentrant .
L'idéal serait que je liste l'ensemble des modifs
A plus
Voici une liste des modifs que j'ai faites
Les modifications effectuées pour l'url rewriting : Les fichiers concernés : install.php index.php version core/admin/parametres_avances.php core/admin/images.php core/admin/documents.php core/admin/version.php core/lib/class.plx.admin.php core/lib/class.plx.show.php core/lib/class.plx.feed.php themes/defaut/footer.php themes/defaut/header.php ================================================ INSTALL.PHP : la variable : $config Lignes 32 a 53 :modif a la ligne 39 ajout du champ : urlrewrite CODE : $config = array('title'=>'Pluxml', 'description'=>'le blog full XML', 'racine'=>plxUtils::getRacine(), 'delta'=>'+00:00', 'allow_com'=>1, 'mod_com'=>0, 'capcha'=>1, 'urlrewrite'=>trim($_POST['urlrewrite']), 'style'=>'defaut', 'bypage'=>5, 'bypage_admin'=>10, 'bypage_admin_coms'=>10, 'bypage_feed'=>8, 'tri'=>'date-desc', 'images'=>'data/images/', 'documents'=>'data/documents/', 'racine_articles'=>'data/articles/', 'racine_commentaires'=>'data/commentaires/', 'racine_statiques'=>'data/statiques/', 'statiques'=>'data/configuration/statiques.xml', 'categories'=>'data/configuration/categories.xml', 'passwords'=>'data/configuration/passwords.xml' ); ajout de la variable $htaccess dans la fonction instal($content, $config){} Ligne 59 CODE: $htaccess =' 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écriture. RewriteRule ^(.*)$ index.php?$1 [L,QSA] '; et ajout de la condition de creation du fichier htaccess : Ligne 129 CODE: if ($content['urlrewrite']==1) { plxUtils::write($htaccess,'.htaccess'); } modification du formulaire: Ligne 162 (ligne 170,171,172 ) CODE: <form action="install.php" method="post"> <fieldset> <p class="field"><label>Nom du rédacteur :</label></p> <?php plxUtils::printInput('name', '', 'text', '20-255') ?> <p class="field"><label>Mot de passe du rédacteur :</label></p> <?php plxUtils::printInput('pwd', '', 'password', '20-255') ?> <p class="field"><label>Confirmation du mot de passe :</label></p> <?php plxUtils::printInput('pwd2', '', 'password', '20-255') ?> <p class="field"><label>Activer l'url rewriting :</label>(N'est pas modifiable par la suite)</p> <p><strong>Ne pas activer sur un hebergement free !</strong></p> <?php plxUtils::printSelect('urlrewrite',array('1'=>'Oui','0'=>'Non'), $plxAdmin->aConf['urlrewrite']);?> <?php plxUtils::printInput('version', $version, 'hidden') ?> <p><input type="submit" value="Installer" /></p> </fieldset> </form> FIN INSTALL.PHP ******************************************** INDEX.PHP dans la partie : #configuration avançée Ligne 17 CODE: if(!file_exists('.htaccess')) { define('PLX_CSS', PLX_ROOT); } else { $uricss=" http://" . $_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; define('PLX_CSS', $uricss); } FIN INDEX.PHP ******************************************** CORE/ADMIN/PARAMETRES_AVANCES.PHP le formulaire ligne 23 (ligne 30) CODE: <h2>Edition des paramètres de Pluxml</h2> <form action="parametres_avances.php" method="post" id="change-cf-file"> <fieldset class="withlabel"> <legend>Configuration avancée (utilisateur averti) :</legend> <p class="field"><label>Activer le capcha anti-spam :</label></p> <?php plxUtils::printSelect('capcha',array('1'=>'Oui','0'=>'Non'), $plxAdmin->aConf['capcha']);?> <?php plxUtils::printInput('urlrewrite', $plxAdmin->aConf['urlrewrite'],'hidden'); ?> <p class="field"><label>Emplacement des images (dossier) :</label></p> <?php plxUtils::printInput('images', $plxAdmin->aConf['images']); ?> <p class="field"><label>Emplacement des documents (dossier) :</label></p> <?php plxUtils::printInput('documents', $plxAdmin->aConf['documents']); ?> <p class="field"><label>Emplacement des articles (dossier) :</label></p> <?php plxUtils::printInput('racine_articles', $plxAdmin->aConf['racine_articles']); ?> <p class="field"><label>Emplacement des commentaires (dossier) :</label></p> <?php plxUtils::printInput('racine_commentaires', $plxAdmin->aConf['racine_commentaires']); ?> <p class="field"><label>Emplacement des pages statiques (dossier) :</label></p> <?php plxUtils::printInput('racine_statiques', $plxAdmin->aConf['racine_statiques']); ?> <p class="field"><label>Emplacement du fichier des catégories (fichier xml) :</label></p> <?php plxUtils::printInput('categories', $plxAdmin->aConf['categories']); ?> <p class="field"><label>Emplacement du fichier des pages statiques (fichier xml) :</label></p> <?php plxUtils::printInput('statiques', $plxAdmin->aConf['statiques']); ?> <p class="field"><label>Emplacement du fichier des mots de passe (fichier xml) :</label></p> <?php plxUtils::printInput('passwords', $plxAdmin->aConf['passwords']); ?> </fieldset> <p><input type="submit" value="Modifier la configuration avancée" /></p> </form> FIN CORE/ADMIN/PARAMETRES_AVANCES.PHP *************************************** CORE/ADMIN/IMAGES.PHP Ligne 93 dans la partie Les liens relatifs sont passés en absolus CODE: # On affiche les différents liens echo '</p>'; echo '<p class="thumb_link">'; echo '<a href="images.php?img='.rawurlencode($name).'"><img src="img/eye.png" alt="Voir" title="Voir l\'image" /></a> '; echo '<a href="javascript:void(0)" title="Ajouter l\'image dans le chapo" onclick="opener.insimg(\'chapo\', \''.str_replace('../', '', $plxAdmin->aConf['racine'].$dirImg.$aImg[$i]).'\')">'; echo '<img src="img/layout-chapo.png" alt="Ajouter chapo" /></a> '; echo '<a href="javascript:void(0)" title="Ajouter la miniature dans le chapo" onclick="opener.insimg(\'chapo\', \''.str_replace('../', '', $plxAdmin->aConf['racine'].$dirImg.$aImg[$i].'.tb').'\')">'; echo '<img src="img/layout-chapo-mini.png" alt="Ajouter mini chapo" /></a> '; echo '<a href="javascript:void(0)" title="Ajouter l\'image dans le contenu" onclick="opener.insimg(\'content\', \''.str_replace('../', '', $plxAdmin->aConf['racine'].$dirImg.$aImg[$i]).'\')">'; echo '<img src="img/layout-content.png" alt="Ajouter contenu" /></a> '; echo '<a href="javascript:void(0)" title="Ajouter la miniature dans le contenu" onclick="opener.insimg(\'content\', \''.str_replace('../', '', $plxAdmin->aConf['racine'].$dirImg.$aImg[$i].'.tb').'\')">'; echo '<img src="img/layout-content-mini.png" alt="Ajouter mini contenu" /></a> '; echo '<a href="?del='.$i.'&hash='.$_SESSION['hash'].'" title="Supprimer l\'image" onclick="Check=confirm(\'Supprimer cette image ?\');if(Check==false) return false;"><img src="img/delete.png" alt="Supprimer" /></a></p>'; echo '</div>'."\n"; FIN CORE/ADMIN/IMAGES.PHP *************************************** CORE/ADMIN/DOCUMENTS.PHP passage des lien relatif en absolu Ligne 79 CODE: <?php } else { # On a des documents $nb = count($aDoc); for($i=0; $i < $nb; $i++) { ?> <tr class="line-<?php echo $i%2; ?>"> <td class="tc1"> <?php echo plxUtils::strCut($aDoc[$i],100); ?></td> <td class="tc1"> <a href="javascript:void(0)" title="Ajouter le fichier dans le chapo" onclick="opener.insdoc('chapo', '<?php echo $plxAdmin->aConf['racine'].'?telechargement/'.plxEncrypt::encryptId($aDoc[$i]) ?>', '<?php echo $aDoc[$i] ?>')"> <img src="img/layout-chapo.png" alt="Ajouter chapo" /></a> <a href="javascript:void(0)" title="Ajouter le fichier dans le contenu" onclick="opener.insdoc('content', '<?php echo $plxAdmin->aConf['racine'].'?telechargement/'.plxEncrypt::encryptId($aDoc[$i]) ?>', '<?php echo $aDoc[$i] ?>')"> <img src="img/layout-content.png" alt="Ajouter contenu" /></a> <a href="documents.php?del=<?php echo $i.'&hash='.$_SESSION['hash'] ?>" title="Supprimer le fichier" onclick="Check=confirm('Supprimer ce fichier ?');if(Check==false) return false;"> <img src="img/delete.png" alt="Supprimer" /></a> </td> </tr> <?php } # Fin for liste des documents ?> FIN CORE/ADMIN/DOCUMENTS.PHP *********************************** CORE/ADMIN/VERSION.PHP CODE complet de ce fichier : <?php /** DESACTIVER ! * Page pour vérifier la version officielle * * @package PLX * @author Florent MONTHEL **/ include('prepend.php'); # Inclusion du header et du footer include('top.php'); echo '<p class="msg"><strong>Cette version de pluxml n\'est pas officiel . Cette option est désactivée - <a href="parametres_base.php" title="Retour à la configuration de base">retour</a></strong></p>'; include('foot.php'); ?> FIN CORE/ADMIN/VERSION.PHP ************************************* CORE/LIB/CLASS.PLX.ADMIN.PHP Injection d'une nouvelle fonction et variable pour gerer le type d'url definie dans la configuration Ligne 21 CODE: $this->linkit=$this->urllink(); PUIS Ligne 471 CODE/ /** * Méthode qui modifie les lien selon la configuration de l'urlreriting * * @return urlrewritesetup * @author Cyrille Griboval **/ function urllink() { if ($this->aConf['urlrewrite'] == '1') { $this->linkit= $this->aConf['racine'];} else {$this->linkit='./?';} return $this->linkit; } FIN CORE/LIB/CLASS.PLX.ADMIN.PHP *********************************************** CORE/LIB/CLASS.PLX.SHOW.PHP Injection d'une nouvelle fonction et variable pour gerer le type d'url definie dans la configuration et modification des lien generé par les differentes fonctions Ligne 23 CODE: $this->linkit=$this->urllink(); ============= PUIS Ligne 218 CODE: function staticList($extra='') { # Si on a la variable extra, on affiche un lien vers la page d'accueil if($extra != '') { $title = htmlspecialchars($this->plxMotor->aConf['title'],ENT_QUOTES,PLX_CHARSET); if($this->plxMotor->mode == 'home' AND $this->plxMotor->cible == '') echo '<li class="active"><a href="'.$this->plxMotor->aConf['racine'].'" title="'.$title.'">'.$extra.'</a></li>'; else echo '<li><a href="'.$this->plxMotor->aConf['racine'].'" title="'.$title.'">'.$extra.'</a></li>'; } # On verifie qu'il y a des pages statiques if($this->plxMotor->aStats) { foreach($this->plxMotor->aStats as $k=>$v) { if($v['readable'] == 1 AND $v['active'] == 1) { # La page existe bien et elle est active $name = htmlspecialchars($v['name'],ENT_QUOTES,PLX_CHARSET); $url = ''.$this->linkit.'static'.intval($k).'/'.$v['url']; if($this->plxMotor->mode == 'static' AND $this->plxMotor->cible == $k) echo '<li class="active"><a href="'.$url.'" title="'.$name.'">'.$name.'</a></li>'; else echo '<li><a href="'.$url.'" title="'.$name.'">'.$name.'</a></li>'; } } # Fin du while } } ================== PUIS Ligne 254 CODE: function catList($extra='', $format='#cat_name') { # Si on a la variable extra, on affiche un lien vers la page d'accueil (avec $extra comme nom) if($extra != '') { $title = htmlspecialchars($this->plxMotor->aConf['title'],ENT_QUOTES,PLX_CHARSET); if($this->plxMotor->mode == 'home' AND $this->plxMotor->cible == '') echo '<li class="active"><a href="'.$this->plxMotor->aConf['racine'].'" title="'.$title.'">'.$extra.'</a></li>'; elseif($this->plxMotor->mode == 'article' AND $this->plxMotor->plxRecord_arts->f('categorie') == 'home') echo '<li class="active"><a href="'.$this->plxMotor->aConf['racine'].'" title="'.$title.'">'.$extra.'</a></li>'; else echo '<li><a href="'.$this->plxMotor->aConf['racine'].'" title="'.$title.'">'.$extra.'</a></li>'; } # On verifie qu'il y a des categories if($this->plxMotor->aCats) { foreach($this->plxMotor->aCats as $k=>$v) { if($v['articles'] > 0) { # On a des articles $v['name'] = htmlspecialchars($v['name'],ENT_QUOTES,PLX_CHARSET); # On modifie nos motifs $name = str_replace('#cat_id',intval($k),$format); $name = str_replace('#cat_name',$v['name'],$name); $name = str_replace('#art_nb',$v['articles'],$name); # Ok $url = ''.$this->linkit.'categorie'.intval($k).'/'.$v['url']; if($this->plxMotor->mode == 'categorie' AND $this->plxMotor->cible == $k) echo '<li class="active"><a href="'.$url.'" title="'.$v['name'].'">'.$name.'</a></li>'; elseif($this->plxMotor->mode == 'article' AND $this->plxMotor->plxRecord_arts->f('categorie') == $k) echo '<li class="active"><a href="'.$url.'" title="'.$v['name'].'">'.$name.'</a></li>'; else echo '<li><a href="'.$url.'" title="'.$v['name'].'">'.$name.'</a></li>'; } } # Fin du while } } =================== PUIS Ligne 313 CODE: function catName($type='') { # On va verifier que la categorie existe en mode categorie if($this->plxMotor->mode == 'categorie' AND isset($this->plxMotor->aCats[ $this->plxMotor->cible ])) { # On recupere les infos de la categorie $id = $this->plxMotor->cible; $name = htmlspecialchars($this->plxMotor->aCats[ $id ]['name'],ENT_QUOTES,PLX_CHARSET); $url = $this->plxMotor->aCats[ $id ]['url']; # On effectue l'affichage if($type == 'link') echo '<a href="'.$this->linkit.'categorie'.intval($id).'/'.$url.'" title="'.$name.'">'.$name.'</a>'; else echo $name; } # On va verifier que la categorie existe en mode article elseif($this->plxMotor->mode == 'article' AND isset($this->plxMotor->aCats[ $this->plxMotor->plxRecord_arts->f('categorie') ])) { # On recupere les infos de la categorie $id = $this->plxMotor->plxRecord_arts->f('categorie'); $name = htmlspecialchars($this->plxMotor->aCats[ $id ]['name'],ENT_QUOTES,PLX_CHARSET); $url = $this->plxMotor->aCats[ $id ]['url']; # On effectue l'affichage if($type == 'link') echo '<a href="'.$this->linkit.'categorie'.intval($id).'/'.$url.'" title="'.$name.'">'.$name.'</a>'; else echo $name; } # Mode home elseif($this->plxMotor->mode == 'home') { if($type == 'link') echo '<a href="'.$this->plxMotor->aConf['racine'].'" title="'.htmlspecialchars($this->plxMotor->aConf['title'],ENT_QUOTES,PLX_CHARSET).'">Accueil</a>'; else echo 'Accueil'; } else { echo 'Non classé'; } } =============================== PUIS Ligne 368 CODE: function artTitle($type='') { if($type == 'link') { # Type lien # On recupere les infos de l'article $num = $this->artId(); $title = htmlspecialchars($this->plxMotor->plxRecord_arts->f('title'),ENT_QUOTES,PLX_CHARSET); $url = $this->plxMotor->plxRecord_arts->f('url'); # On effectue l'affichage echo '<a href="'.$this->linkit.'article'.$num.'/'.$url.'" title="'.$title.'">'.$title.'</a>'; } else { # Type normal echo htmlspecialchars($this->plxMotor->plxRecord_arts->f('title'),ENT_QUOTES,PLX_CHARSET); } } ================================ PUIS Ligne 425 CODE: function artCat() { # Initialisation de notre variable interne $catId = $this->plxMotor->plxRecord_arts->f('categorie'); # On verifie que la categorie n'est pas "home" if($catId != 'home') { # On va verifier que la categorie existe if(isset($this->plxMotor->aCats[ $catId ])) { # On recupere les infos de la categorie $name = htmlspecialchars($this->plxMotor->aCats[ $catId ]['name'],ENT_QUOTES,PLX_CHARSET); $url = $this->plxMotor->aCats[ $catId ]['url']; # On effectue l'affichage echo '<a href="'.$this->linkit.'categorie'.intval($catId).'/'.$url.'" title="'.$name.'">'.$name.'</a>'; } else { # La categorie n'existe pas echo 'Non classé'; } } else { # Categorie "home" echo '<a href="'.$this->plxMotor->aConf['racine'].'" title="'.htmlspecialchars($this->plxMotor->aConf['title'],ENT_QUOTES,PLX_CHARSET).'">Accueil</a>'; } } ==================================== PUIS Ligne 454 CODE: function artChapo() { # On verifie qu'un chapo existe if($this->plxMotor->plxRecord_arts->f('chapo') != '') { # On recupere les infos de l'article $num = $this->artId(); $title = htmlspecialchars($this->plxMotor->plxRecord_arts->f('title'),ENT_QUOTES,PLX_CHARSET); $url = $this->plxMotor->plxRecord_arts->f('url'); # On effectue l'affichage echo $this->plxMotor->plxRecord_arts->f('chapo'); echo '<p><a href="'.$this->linkit.'article'.$num.'/'.$url.'" title="Lire : '.$title.'">Lire : '.$title.'</a></p>'."\n"; } else { # Pas de chapo, affichage du contenu echo $this->plxMotor->plxRecord_arts->f('content')."\n"; } } ===================================== PUIS Ligne 489 CODE: function artFeed($type='atom') { if($type == 'rss') # Type RSS echo '<a href="'.$this->plxMotor->aConf['racine'].'feed.php?rss" title="Fil Rss des articles">Fil des articles</a>'; else # Type ATOM echo '<a href="'.$this->plxMotor->aConf['racine'].'feed.php?atom" title="Fil Atom des articles">Fil des articles</a>'; } ===================================== PUIS Ligne 504 CODE: function artNbCom() { # On recupère le nb de commentaire selon le mode if($this->plxMotor->mode == 'article') $nb = $this->plxMotor->plxGlob_coms->count; else $nb = $this->plxMotor->plxRecord_arts->f('nb_com'); # A t'on besoin d'afficher le nb de commentaires ? if((!$this->plxMotor->aConf['allow_com'] OR !$this->plxMotor->plxRecord_arts->f('allow_com')) AND !$nb) return; # Petit test pour l'orthographe if($nb < 2) $txt = $nb.' commentaire'; else $txt = $nb.' commentaires'; # On effectue l'affichage selon le mode if($this->plxMotor->mode == 'article') { echo $txt; } else { # On recupere les infos de l'article $num = intval($this->plxMotor->plxRecord_arts->f('numero')); $title = htmlspecialchars($this->plxMotor->plxRecord_arts->f('title'),ENT_QUOTES,PLX_CHARSET); $url = $this->plxMotor->plxRecord_arts->f('url'); # On effectue l'affichage echo '<a href="'.$this->linkit.'article'.$num.'/'.$url.'#comments" title="'.$txt.' pour '.$title.'">'.$txt.'</a>'; } } ====================================== PUIS Ligne 621 CODE: function comFeed($type='atom',$article='') { if($type == 'rss' AND $article != '') # Fil RSS des commentaires d'un article echo '<a href="'.$this->plxMotor->aConf['racine'].'feed.php?rss/commentaires/article'.$article.'" title="Fil Rss des commentaires de cet article">Fil des commentaires de cet article</a>'; elseif($type == 'rss') # Fil RSS des commentaires global echo '<a href="'.$this->plxMotor->aConf['racine'].'feed.php?rss/commentaires" title="Fil Rss global des commentaires">Fil des commentaires</a>'; elseif( $article != '') # Fil ATOM des commentaires d'un article echo '<a href="'.$this->plxMotor->aConf['racine'].'feed.php?atom/commentaires/article'.$article.'" title="Fil Atom des commentaires de cet article">Fil des commentaires de cet article</a>'; else # Fil ATOM des commentaires global echo '<a href="'.$this->plxMotor->aConf['racine'].'feed.php?atom/commentaires" title="Fil Atom global des commentaires">Fil des commentaires</a>'; } ====================================== PUIS Ligne 665 CODE: function pagination() { # On verifie que la variable bypage n'est pas nulle if($this->plxMotor->bypage) { # Calcul des pages $prev_page = $this->plxMotor->page - 1; $next_page = $this->plxMotor->page + 1; $last_page = ceil($this->plxMotor->plxGlob_arts->count/$this->plxMotor->bypage); if($this->plxMotor->mode == 'home') { # En mode home # Generation des URLs $p_url = ''.$this->linkit.'page'.$prev_page; # Page precedente $n_url = ''.$this->linkit.'page'.$next_page; # Page suivante $l_url = ''.$this->linkit.'page'.$last_page; # Derniere page $f_url = './'; # Premiere page } elseif($this->plxMotor->mode == 'categorie') { # En mode categorie # Generation des URLs $get = explode('/',$this->plxMotor->get); $p_url = ''.$this->linkit.''.$get[0].'/'.$get[1].'/page'.$prev_page; # Page precedente $n_url = ''.$this->linkit.''.$get[0].'/'.$get[1].'/page'.$next_page; # Page suivante $l_url = ''.$this->linkit.''.$get[0].'/'.$get[1].'/page'.$last_page; # Derniere page $f_url = ''.$this->linkit.''.$get[0].'/'.$get[1]; # Premiere page } # On effectue l'affichage if($this->plxMotor->page > 2) # Si la page active > 2 on affiche un lien 1ere page echo '<a href="'.$f_url.'" title="Aller à la première page"><<</a> | '; if($this->plxMotor->page > 1) # Si la page active > 1 on affiche un lien page precedente echo '<a href="'.$p_url.'" title="Page précédente">< précédente</a> | '; # Affichage de la page courante echo 'page '.$this->plxMotor->page.' sur '.$last_page; if($this->plxMotor->page < $last_page) # Si la page active < derniere page on affiche un lien page suivante echo ' | <a href="'.$n_url.'" title="Page suivante">suivante ></a>'; if(($this->plxMotor->page + 1) < $last_page) # Si la page active++ < derniere page on affiche un lien derniere page echo ' | <a href="'.$l_url.'" title="Aller à la dernière page">>></a>'; } } ====================================== PUIS Ligne 734 CODE: /** * Méthode qui modifie les lien selon la configuration de l'urlreriting * * @return urlrewritesetup * @author Cyrille Griboval **/ function urllink() { if ($this->aConf['urlrewrite'] == '1') { $this->linkit= $this->aConf['racine'];} else {$this->linkit='./?';} return $this->linkit; } FIN CORE/LIB/CLASS.PLX.show.PHP *********************************************** CORE/LIB/CLASS.PLX.FEED.PHP Dans ce fichier la fonction linkit et sa variable y sont aussi injecté ,et tout les liens generé sont repris. FIN CORE/LIB/CLASS.PLX.FEED.PHP ******************************* THEME/DEFAUT/FOOTER.PHP recriture du lien relatif vers l'admin en lien absolue: CODE: <a href="<?php echo $plxMotor->aConf['racine']; ?>core/admin/">Administration</a> FIN THEMES/DEFAUT/FOOTER.PHP ********************************** THEMES/DEFAUT/HEADER.PHP reecriture des liens dans la partie head en lien absolu. Ligne 4 CODE: <head> <title><?php $plxShow->pageTitle(); ?></title> <meta http-equiv="Content-Type" content="text/html; charset=<?php $plxShow->charset(); ?>" /> <link rel="stylesheet" type="text/css" href="<?php $plxShow->template(); ?>/style.css" media="screen" /> <link rel="alternate" type="application/atom+xml" title="Atom articles" href="<?php echo $plxMotor->aConf['racine']; ?>feed.php?atom" /> <link rel="alternate" type="application/rss+xml" title="Rss articles" href="<?php echo $plxMotor->aConf['racine']; ?>feed.php?rss" /> <link rel="alternate" type="application/atom+xml" title="Atom commentaires" href="<?php echo $plxMotor->aConf['racine']; ?>feed.php?atom/commentaires" /> <link rel="alternate" type="application/rss+xml" title="Rss commentaires" href="<?php echo $plxMotor->aConf['racine']; ?>feed.php?rss/commentaires" /> </head> FIN THEMES/DEFAUT/HEADER.PHPCordialement,
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 | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci
On peut migrer sans souci vers la 4.1.1 depuis ta version ?
Merci
non , la verification de derniere version est d'ailleurs désactivé .
Je n'ai pas encore regardé ni regardé pour une modification sur cette version , il y a la fonction artUrl() , qui permet probablement de faire ça plus proprement.
La 4.2 semble ne pas etre si loin de sa sortie même si je ne sais pas ou en est Stéphane . Va t-il laissé une ouverture a la gestion des url , va t-il modifier l'ecriture des url (article01/nom-article par article-01_nom-article) , va t-il implémenter l'urlrewriting , ... ?
Si changement d'url , un probleme se profile , sur free (ou les hebergement incompatible avec l'url rewriting ) , il ne sera pas possible de faire un htaccess permettant de rediriger les anciennes url vers les nouvelles (pour une compatibilité avec les favoris de vos visiteurs ou moteurs de recherche , par exemple )
J'attend donc la 4.2 voir comment réagir a ce propos .
(Sur free , il y a des astuces pour simuler l'url rewriting , mais je n'ai pas assez jouer avec pour en bien comprendre l'usage et les subtilités , Le passage par une page d'erreur et une redirection est aussi envisageable .)
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 | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci
J'ai décidé il y a quelques jours de migrer l'ensemble des sites que j'administre sous Pluxml, après avoir pris connaissance des dernières versions via un article de dhoko et après quelques tests, alors que je m'étais intéressé aux premières versions.
J'ai attaqué ces migrations, mais quel fut mon étonnement de voir de si "moches" URLs ! Il me semble que les friendly URLs sont l'un des plus importants points de la SEO (Search engine optimization) pour les CMS et autres gestionnaires de contenu.
J'espère que les développeurs y penseront pour les prochaines versions !
J'ai en partie contourné les problèmes avec l'URL ReWriting pour une paires de mes sites. Pour ceux qu'il me reste à migrer, je pense testé UrwPluxml de gcyrillus-nomade même en 4.1, qui améliore cet aspect mais ne réponds pas encore complètement à l'ensemble des soucis de friendly URLs dans le cadre de la SEO.
@+
Je vient tardivement de remarquer la sortie de la V2.
Je vais probablement refaire une version urw , toujours avec la même impossibilité de mise a jour .
Je suis donc interessé par ce que tu souhaiterais éventuellement et comme implanté en natif ? au futur pluxml .
Cette version , comme beaucoup d'autre de mes test , sortent assez brut avec des "cahiers des charges" des plus simplistes sans garde-fou.
@orx57 . quelle serait tes demandes ? , eliminé: article , statique et categorie de l'url ? ou plus subtile ?
@tout le monde :
Et plus generalement , quel type d'url taxer vous de : SEO friendly URLs , et que vous genent-il dans pluxml a ce niveau ?
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 | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci
@gcyrillus-nomade :
Personnellement, ce qui me dérange ce sont les URL de type www.monsite.fr/?static1/accueil
Une URL friendly serait www.monsite.fr/accueil
Ce serait bien aussi de pouvoir choisir sa page d'accueil, je suis en train d'essayer de la faire pointer sur une page statique mais j'ai du mal.
Merci.
- page statique/article/categorie etc
- id de la ressource
Donc un www.monsite.fr/accueil va être difficile non ?
Tu peux afficher une page statique en utilisant la ligne suivante:
où $id = id numérique de la page statique
exemple
<?php $plxShow->staticInclude('1') ?>Tu peux mettre cette ligne dans le home.php de ton themeStéphane.
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Pourquoi ne pas construire des url, en precisant en premier param, le type , et en second la valeur
cad:
www.monsite.fr/article/accueil
www.monsite.fr/statique/machinchose
www.monsite.fr/categorie/truc/article/accueil
Il me semble que c'est la procedure avec wp
Et dans ce cas, pas de pbs de perf,
Et puis c'est apache qui travail, pas le core.
Ça impose également d'avoir une unicité ds les titres
Ces Urls, c'est un problème esthétique?
L'idée de l'arborescence me semble bonne et explicite , sauf peut-etre pour l'article , ou l'url ne montre pas a quelle rubrique est rattaché l'article , ce serait ma seule "doléance"
@progfrance : De plus faudrait aussi gérer les risques de doublon a la creations d'une pages statique , rubrique ou article dans les noms ...
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 | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci
L'idée de ne pas travailler sur les nom, au profit des ID d'article, pourquoi pas. Oncroisent souvent des url de la forme D'autre part pour ce qui est le la rubrique de l'article, a aprtir du moment ou on exploite l'id, on peut mettre ce que l'on veut derriere Dans cette solution, il suffit juste de recuperer le a-8, ou le c-1 ou le s-9
Ce que j'attends d'un CMS concernant les SEO friendly URLs, c'est de ne pas voir de "?id=" ou dérivés pour les raisons pré-citées, et de permettre via l'interface et/ou mod_rewrite, de gérer le format des URLs dans cet esprit :
Avec une gestion des duplicata de nom de page:
* http://exemple.fr/nom-page (sans extension)
* http://exemple.fr/nom-page.php (ou .html ou .cgi ou .jsp ou .aspx ou .cfm ou .toutcequevousvoulez)
* http://exemple.fr/nom-page.php (créé manuellement)
* http://exemple.fr/nom_page.php (automatiquement créés à partir du titre de la page)
Sans gestion des duplicata de nom de page :
* http://exemple.fr/certains/sous-dossier/nom-page.php (utilisant par exemple les rubriques pour l'arborescence et permettant l'utilisation de nom de page dupliqué)
Ou toute combinaison de ce qui précède.
Tout ce qui touche au fonctionnement du moteur (static, article, ou l'id) devrait être transparent. Cela n'a rien de parlant pour un utilisateur, ne serait-ce que pour retenir une URL intéressante...
Pour l'anecdote : j'ai migré vers PluXml un site ne contenant que des pages statiques et j'ai du me créer un .htaccess pas très jolie et très statique aussi :
* URL : http://keratine.fr/
* .htaccess :
[...]
RewriteRule ^(contact).php$ ?static2/$1 [L,QSA]
RewriteRule ^(tarifs).php$ ?static3/$1 [L,QSA]
RewriteRule ^(perruques).php$ ?static4/$1 [L,QSA]
RewriteRule ^(trame).php$ ?static5/$1 [L,QSA]
RewriteRule ^(recrutement).php$ ?static6/$1 [L,QSA]
[...]
@+
une solution intermédiaire pour la gestion de réécriture des url des pages statique , serait d'automatiser cette réécriture a la création de la page .... editer donc le fichier .htaccess du même coup sans avoir a le faire 'a mano'.
Cette réécriture est transposable au rubrique et pages article .
La gestions des "doublons" peut-etre alors gérer a ce niveau par une alerte ou l'ajout d'un préfixe simple devant le nom de page dans l'URL réécrite.
Cette piste me semble beaucoup plus intéressante que de remanier et complexifier le code de Pluxml au risque d'en faire une usine a gaz mal foutue
Un plugin ferait l'affaire avec la possibilité d'activer ou nom l'URL rewriting a l'installation ou via une page adjacente a l'administration.
reste malgré tout le problème de la gestion des url relative interne (images et documents par exemples)
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 | Thèmes: tester et télécharger @ https://pluxthemes.com
Indiquez [RÉSOLU] dans le titre de votre question une fois le soucis réglé, Merci