Résolu : Petits soucis dans la réecriture de mes pages

  • Auteur de la discussion Auteur de la discussion code
  • Date de début Date de début
WRInaute impliqué
Bonjour,

j'en suis à l'url rewriting de mon site. En cehrchant ici et ailleurs j'ai trouvé une règle de réécriture qui me convient presque (mise dans un fichier fonctions.php)

j'ai juste un souci :

Il s'agit de réécrire les pages d'un annuaire qui sont au départ de ce type

.../index.php?cat_id= XX qui devient alors ..../mapage-lenomdemacategorie-p1-XX.html

lenomdemacategorie est bien sur le nom de la catégorie dont l'id est XX

Le script que j'ai trouvé permet, à partir de ce nom, de supprimer les accents, remplacer les majuscules par des minuscules...

Cependant, je ne suis pas encore très familiarisé avec ce type de langage et j'aimerais modifier certains points. Ainsi, s'il y a un tiret dans mon nom de categorie, celui-ci est supprimé. Par exemple : Livres-Librairies devient livreslibrairies, ce qui m'ennuit pour le référencement car je perds ainsi 2 mots clés.

Ce que je voudrais, c'est que losqu'il y a un tiret dans mon nom de catégorie, celui-ci soit conservé (Livres-Librairies >> livres-librairies) et que quand il y a un espace, celui-ci soit supprimer alors qu'actuellemnt il est remplacé par un tiret :(

Voici le code, si qqn pouvez me dire ce que je dois modifier :

function id_to_url_info ()
{
// Le nom des fichiers se terminera par ça
$suffixe = '.html';
// Nombre maximum de caractères pour le nom de la rubrique
$caracteres = 50;
// Remplacer ces caractères ...
$car_speciaux = array( 'À','Á','Â','Ã','Ä','Å','Æ','à','á','â','ã','ä','å','æ','È','É','Ê','Ë','è','é','ê','ë','Ì','Í','Î','Ï','ì','í','î','ï','Ò','Ó','Ô','Õ','Ö','Ø','ò','ó','ô','õ','ö','ø','Ù','Ú','Û','Ü','ù','ú','û','ü','ß','Ç','ç','Ð','ð','Ñ','ñ','Þ','þ','Ý' );
// ... par ceux-ci
$car_normaux = array( 'A','A','A','A','A','A','A','a','a','a','a','a','a','a','E','E','E','E','e','e','e','e','I','I','I','I','i','i','i','i','O','O','O','O','O','O','o','o','o','o','o','o','U','U','U','U','u','u','u','u','B','C','c','D','d','N','n','P','p','Y' );

return array( $suffixe, $caracteres, $car_speciaux, $car_normaux );
};

function id_to_url ($id,$cat,$page,$type='')
{
global $T_infos, $PMA_infos;

// Déterminer s'il faut faire de l'URL Rewritting
if ( $PMA_infos['url_rewritting'] )
{
list( $suffixe, $caracteres, $car_speciaux, $car_normaux ) = id_to_url_info();

// Supprime les accents, supprime les caractères non-alphanumériques, convertit en minuscules, remplace les tirets multiples par un tiret unique, supprime le dernier caractère si c'est un tiret, et limite la chaine aux $caractères premiers caractères
$url = substr( eregi_replace( "\-$", '', eregi_replace( "\-+", '-', strtolower( eregi_replace( "[^A-Za-z0-9]", '-', str_replace($car_speciaux, $car_normaux, $cat) ) ) ) ), 0, $caracteres );
// Applique le suffixe à l'url
$url = $type=='keyw' ? "$url-k$page-$id$suffixe" : "$url-p$page-$id$suffixe";

return $url;
}
else
{
if ( $type=='keyw' ) {
return "search.php?action=seek&mots=id$id&nb_results2show=20&booleen=AND";
} else {
return $page==1 ? "index.php?cat_id=$id" : "index.php?cat_id=$id&page=$page";
};
};
}


Merci pour votre aide :oops:
 
WRInaute impliqué
bon

Bon bah déjà, le rewriting de ton forum est à compléter. Tu n'as pas enlevé les SID, alors ça ne sert à rien d'avoir des pages du type forum1.html&sid=dfbc5672d762e85079abc8c48a8837e9

Pour cela il te faut installer la version 0.04 du guest session mod de cyber alien, qui doit être compatible avec a peu pret tous les mod d' UR.

Et si tu veux mettre en place un Url Rewriting plus efficace, jette un oeil là : https://www.webrankinfo.com/forum/t/url-rewriting-titres-pour-phpbb-v2-solution-globale.31831/

++
 
WRInaute impliqué
code a dit:
Il ne s'agit pas de mon forum qui n'est pas tout a fait terminé mais de mon annuaire

J'avais noté, mais comme il y ce problème de SId j'ai préféré te prévenir que de te guérir ;)
 
WRInaute impliqué
Ok, j'ai suivi tes conseils pour le forum. Peux-tu me dire si les SID ont été enlevés.

Sinon ca ne résoud pas ma question mpour mon annuaire
 
WRInaute impliqué
code a dit:
Ok, j'ai suivi tes conseils pour le forum. Peux-tu me dire si les SID ont été enlevés.

Sinon ca ne résoud pas ma question mpour mon annuaire

Nop,
je les vois encore....
 
WRInaute impliqué
comprend pa alors puisque j'ai suivi guest sessions mod et moi je ne les vois plus alors si toi tu les voit c'est pas normal... mais ou est le bug ?
 
WRInaute impliqué
lol

code a dit:
comprend pa alors puisque j'ai suivi guest sessions mod et moi je ne les vois plus alors si toi tu les voit c'est pas normal... mais ou est le bug ?

Lol, désolé, ils n'y sont plus maintenant, j'ai dû vérifier trop vite pour que tes modifs apparaissent.
Tu peut maintenant utiliser le mod sitemap original qui fonctionne avecto rewriting moyennant cette modif dans sitemap.php :
Code:
#remplacer
'TOPIC_URL' => $server_url."viewtopic.$phpEx?t=" . $topic['topic_id'],

#par
'TOPIC_URL' => $server_url."ftopic" . $topic['topic_id'] . ".html",

Tu peut ensuite effecuer les même modifications que j'ai fait pour la version que j'utilise de ce mod pour le mettre à la racine du site (et pas dans le dossier phpbb) en faisant :
Code:
#Remplacer dans sitemap.php

$phpbb_root_path = './';

#Par

$phpbb_root_path = 'votredossierphpBB/';

Ce permet de coder en dur dans sitemap_body.tpl les éventuelles url de pages se trouvant un cran au dessus du dossier de votre forum en respectant la synthaxe observée.
Ce mod est très efficace pour google, il vous suffit ensuit d'inscrire votre toute nouvelle sitemap ici.
 
WRInaute impliqué
je ne compte pas utiliser un sitemap pour le forum. Je l'avais fait pour mon site et je trouve pas que les résultats soit vraiment probant. Par ailleurs, je crois même que la soumission du sitemap via le panneau admin google a seulement abouti à un ralentissement dans la prise en compte en profondeur de mon site et depuis que je l'ai enlevé, les bots suivent bien les liens (est-ce une simple coincidence??)

Sinon puisque tu as l'air de bien connaitre phpbb, j'ai un petit soucis avec le format de date. dans le panneau admin, j'ai fait la modif en virant le "a" pour ne plus avoir pm ou am et j'ai choisi GMT+1. pourtant ces modifs ne sont pas prises en compte quand on poste un message et conserve les parametres par défaut. Je ne comprends pas pourquoi.
 
WRInaute impliqué
ah bon

code a dit:
je ne compte pas utiliser un sitemap pour le forum. Je l'avais fait pour mon site et je trouve pas que les résultats soit vraiment probant. Par ailleurs, je crois même que la soumission du sitemap via le panneau admin google a seulement abouti à un ralentissement dans la prise en compte en profondeur de mon site et depuis que je l'ai enlevé, les bots suivent bien les liens (est-ce une simple coincidence??)

Sinon puisque tu as l'air de bien connaitre phpbb, j'ai un petit soucis avec le format de date. dans le panneau admin, j'ai fait la modif en virant le "a" pour ne plus avoir pm ou am et j'ai choisi GMT+1. pourtant ces modifs ne sont pas prises en compte quand on poste un message et conserve les parametres par défaut. Je ne comprends pas pourquoi.

C'est marrant, en ce qui me concerne, cela a favoriser l'indexages des pages situes un peu en profondeur. Mais en même temps, je ne veux référencer que mes "bonnes url" , le rest est interdit par le robots.txt.

Pour ton format d'heur je ne vois pas trop de quoi tu parles.

Si c'est à propos des heure d'hivers et d'été, voici la solution :


http://www.phpbb.com/phpBB/viewtopic.ph ... 01&start=0
I have been looking through all that has been written here about Daylight Saving Time and about extensive mods. I may be barking up the wrong tree, but I have been able to come up with a very simple two line MOD to phpBB 2.04 that is working for me.

In include\functions.php
Code:
#
#-------[ FIND ]-----------------------------------------
#
return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz)), $translate) : @gmdate($format, $gmepoch + (3600 * $tz));
#
#------[ REPLACE WITH ]----------------------------------
#
// Fix for Daylight Savings Time
$dst = date('I', $gmepoch) * 3600;

return ( !empty($translate) ) ? strtr(@gmdate($format, $gmepoch + (3600 * $tz) + $dst), $translate) : @gmdate($format, $gmepoch + (3600 * $tz) + $dst);
#
#------{ SAVE/CLOSE ALL FILES ]--------------------------
#
# EoM



++
 
WRInaute impliqué
code a dit:
Décidemment merci beaucoup, oui l'erreur pour les heures venait bien de là

de rien. Pour info ce fix ne marche que si le site web est hébérgé sur un serveur qui respecte les heures d'hiver et d'été...

++
 
WRInaute impliqué
Résolu

C'est bon j'ai trouvé. Si ça peut servir à qqn :

alors pour mon problème de tiret j'ai remplacé ça :

$url = substr( eregi_replace( "\-$", '', eregi_replace( "\-+", '-', strtolower( eregi_replace( "[^A-Za-z0-9]", '-', str_replace($car_speciaux, $car_normaux, $cat) ) ) ) ), 0, $caracteres );

par ça :

$url = substr( eregi_replace( "\-$", '', eregi_replace( "\-+", '-', strtolower( eregi_replace( "[^A-Za-z0-9-]", '', str_replace($car_speciaux, $car_normaux, $cat) ) ) ) ), 0, $caracteres );

voila ça marche. Mes tirets sont conservés quand il ya en a dans le titre de la categorie, et les espaces sont supprimés :wink:
 
Discussions similaires
Haut