migration dlp / categories hierarchy

Support et discussions sur les différentes téchniques de réécriture d'url (url rewriting) pour phpBB2.

Modérateur: Modérateurs

migration dlp / categories hierarchy

Messagede cobra220684 » Jeu Juin 08, 2006 7:43 pm

Bonsoir, je viens ici suite au conseil de dcz pour m'aider a réaliser un migration vers votre mod rewrites.

En effet j'utilise actuellement un vieux mod mais je voudrais concerver le referencement dans google ainsi que les meme URL car j'ai mon site qui utilise les URL actuel et je me voit mal tout refaire a la main.

Je vous met les modifications que j'utilise actuellement pour mon forum avec le mod categorie hierarchy.

Le page header

ob_start();
function replace_mod_rewrite($s)
{
$urlin = array(
"'(?<!/)profile.php\?mode=viewprofile&amp;u=([0-9]*)'",
"'(?<!/)viewforum.php\?f=([0-9]*)&amp;topicdays=([0-9]*)&amp;start=([0-9]*)'",
"'(?<!/)viewforum.php\?f=([0-9]*)&amp;mark=topics'",
"'(?<!/)viewforum.php\?f=([0-9]*)'",

"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;view=previous'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;view=next'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;view=newest'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&(?:amp;)watch=topic&(?:amp;)start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&(?:amp;)unwatch=topic&(?:amp;)start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;postdays=([0-9]*)&amp;postorder=([a-zA-Z]*)&amp;start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;start=([0-9]*)&amp;postdays=([0-9]*)&amp;postorder=([a-zA-Z]*)&amp;highlight=([a-zA-Z0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;start=([0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)&amp;highlight=([a-zA-Z0-9]*)'",
"'(?<!/)viewtopic.php\?t=([0-9]*)'",
"'(?<!/)viewtopic.php\?p=([0-9]*)'",);


$urlout = array(
"profile\\1.html",
"viewforum\\1-\\2-\\3.html",
"mforum\\1.html",
"forum\\1.html",

"ptopic\\1.html",
"ntopic\\1.html",
"newtopic\\1.html",
"stopic\\1-\\2.html",
"utopic\\1-\\2.html",
"ftopic\\1-\\2-\\3-\\4.html",
"ftopic\\1-\\2-\\3-\\4-\\5.html",
"ftopic\\1-\\2.html",
"setopic_\\1-\\2.html",
"ftopic\\1.html",
"sutra\\1.html");

$s = preg_replace($urlin, $urlout, $s);

return $s;
}



et mon htaccess

RewriteEngine on
Options +FollowSymlinks


#RewriteRule ^forum-(.*)-([0-9]+)\.html$ viewforum.php?f=$2 [L]
#RewriteRule ^(.*)-([0-9]+)\.html$ viewtopic.php?t=$2 [L]

#RewriteRule ^forum-(.*)-([0-9]+)\.html$ viewforum.php?f=$2 [L]
#RewriteRule ^ftopic(.*)-([0-9]+)\.html$ viewtopic.php?t=$2 [L]



RewriteRule ^forums.* index.php
RewriteRule ^mforum([0-9]*).* viewforum.php?f=$1&mark=topics
RewriteRule ^viewforum([0-9]*)-([0-9]*)-([0-9]*).* viewforum.php?f=$1&topicdays=$2&start=$3
RewriteRule ^forum([0-9]*).* viewforum.php?f=$1
RewriteRule ^ptopic([0-9]*).* viewtopic.php?t=$1&view=previous
RewriteRule ^ntopic([0-9]*).* viewtopic.php?t=$1&view=next
RewriteRule ^stopic([0-9]*)-([0-9]*).* viewtopic.php?t=$1&watch=topic&start=$2
RewriteRule ^utopic([0-9]*)-([0-9]*).* viewtopic.php?t=$1&unwatch=topic&start=$2
RewriteRule ^ftopic([0-9]*)-([0-9]*)-([a-zA-Z]*)-([0-9]*).* viewtopic.php?t=$1&postdays=$2&postorder=$3&start=$4
RewriteRule ^ftopic([0-9]*)-([0-9]*).* viewtopic.php?t=$1&start=$2
RewriteRule ^ftopic([0-9]*).* viewtopic.php?t=$1
RewriteRule ^ftopic([0-9]*).html viewtopic.php?t=$1&start=$2&postdays=$3&postorder=$4&highlight=$5
RewriteRule ^setopic_([0-9]*)-([a-zA-Z0-9]*).* viewtopic.php?t=$1&highlight=$2
RewriteRule ^sutra([0-9]*).* viewtopic.php?p=$1
RewriteRule ^newtopic([0-9]*).* viewtopic.php?t=$1&view=newest

RewriteRule ^profile([0-9]*).html profile.php?mode=viewprofile&u=$1

<FilesMatch config.php>
deny from all
</FilesMatch>


Voila ce system m'allait assez bien mais malheuresement me causai quelques soucis avec les lien pour consulter les topics a plusieurs page.

Merci d'avance pour votre aide.
cobra220684
PR1
PR1
 
Messages: 137
Inscription: Jeu Juin 08, 2006 7:38 pm

Publicité

Messagede dcz » Jeu Juin 08, 2006 7:57 pm

Aucun souci, il est possibel de concerver les url produite par le mod de DLP.

Mais avant toutes chose, je voudrais rappeler que, si l'operation est simple, les changement devront être mis en ligne après validation sur un site miroir en local (pas obligé d'importer toute la base de données ;) )

Il vaut mieux attendre un jour de plus et ne pas avoir de ratés.

Donc dans un premier temps pourrais tu essayer d'installer le mod rewrite phpBB SEO Simple tel quel sur ton serveur de test en local ?
C'est fait très rapidement ;)

Cela nous permettra de rapidement tester les petits changements de codes à effectuer pour conserver tes URL. Ces changements concerneront les fichiers sessions.php et le .htaccess.

Il nous faudra aussi ajouter une petite redirection pour rationaliser la pagination, car on n'aura plus de duplicates, et le tour sera joué.

Ensuite, il faudra faire un petit quelque chose pour le mod mx Google Sitemaps ;)

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21383
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede cobra220684 » Jeu Juin 08, 2006 8:23 pm

Voila j'ai installer tout ca et la premier probleme...

Il semblerais qu'avec votre mod mon forum en local ne change pas les url alors qu'avec mon ancien mod ca marchais.

Alors si vous avez une solution ?

A moin que cela ne vienne du mod categories hierachy ?
cobra220684
PR1
PR1
 
Messages: 137
Inscription: Jeu Juin 08, 2006 7:38 pm

Messagede dcz » Jeu Juin 08, 2006 8:47 pm

cobra220684 a écrit:
A moin que cela ne vienne du mod categories hierachy ?



Sauf omission oui.

Mais c'est bizarre, il me semblait que CH utilisait append_sid().

Un lien vers le mod et je jetterais un oeil ;)
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21383
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede cobra220684 » Jeu Juin 08, 2006 8:51 pm

Voila le lien direct

ici
cobra220684
PR1
PR1
 
Messages: 137
Inscription: Jeu Juin 08, 2006 7:38 pm

Messagede dcz » Ven Juin 09, 2006 10:11 am

Alors,

Je n'utilise pas CH et je n'ai pas trop envie de me lancer dans son installation, donc je peut pas tester, mais il me semble que voici une possible solution pour le mod Rewrite Simple (et donc pour le mod de DLP Migré) :

Ouvrir :

Code: Tout sélectionner
includes/class_config.php


Trouver :
Code: Tout sélectionner
      return ($external ? $script_path : trim(ereg('^\.\/', $this->root) && $add_sid ? preg_replace('#^(\.\/)(.*)$#', '\2', $this->root) : $this->root)) . $basename . '.' . $this->ext . $url_parms;


Remplacer par :

Code: Tout sélectionner
      // www.phpBB-SEO.com SEO TOOLKIT BEGIN
      //return ($external ? $script_path : trim(ereg('^\.\/', $this->root) && $add_sid ? preg_replace('#^(\.\/)(.*)$#', '\2', $this->root) : $this->root)) . $basename . '.' . $this->ext . $url_parms;
      $url_tmp = ($external ? $script_path : trim(ereg('^\.\/', $this->root) && $add_sid ? preg_replace('#^(\.\/)(.*)$#', '\2', $this->root) : $this->root)) . $basename . '.' . $this->ext . $url_parms;
      return append_sid($url_tmp);
      // www.phpBB-SEO.com SEO TOOLKIT END


Dis mois si ça marche, et si c'est le cas on pourra 1) migrer et 2) utiliser CH :D (au moins avec le mod Rewrite Simple).

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21383
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede cobra220684 » Ven Juin 09, 2006 10:16 am

Bon on peu dire que ca a avancé mais c'est pas encore ca.

Pour les topic ca me donne des url du type topic861.html mais ca me renvoi vers une page 404.

Doit y avoir un petit quelques chose au niveau du htaccess qui marche pas des masses.
cobra220684
PR1
PR1
 
Messages: 137
Inscription: Jeu Juin 08, 2006 7:38 pm

Messagede dcz » Ven Juin 09, 2006 10:18 am

cobra220684 a écrit:Bon on peu dire que ca a avancé mais c'est pas encore ca.

Pour les topic ca me donne des url du type topic861.html mais ca me renvoi vers une page 404.

Doit y avoir un petit quelques chose au niveau du htaccess qui marche pas des masses.


ahh, et bien c'est parfait, et les URL des forums, elles sont ok ?

Teste bien tout, les recherches, le forums, les sujets et les messages.

Les 404 c'est rien, ça va venir, tu test en local avec easyphp et tu as activé le mod rewrite ?

Envois ton .htaccess :D
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21383
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede cobra220684 » Ven Juin 09, 2006 10:20 am

vi vi je test en local comme je fait toujours.

Voila pour le htaccess

Options +FollowSymlinks
RewriteEngine On
RewriteBase /

#########################################################
# PHPBB SEO REWRITE RULES #
#########################################################
# AUTHOR : DCZ http://www.phpbb-seo.com/
# STARTED : 01/2006
#####################################################
# FORUMS PAGES
########################
# CATEGORIES
RewriteRule ^cat([0-9]+)\.html$ index.php?c=$1 [QSA,L]
# PAGINATED FORUM
RewriteRule ^forum([0-9]+)-([0-9]+)\.html$ viewforum.php?f=$1&start=$2 [QSA,L]
# FORUM
RewriteRule ^forum([0-9]+)\.html$ viewforum.php?f=$1 [QSA,L]
# PAGINATED TOPIC
RewriteRule ^topic([0-9]+)-([0-9]+)\.html$ viewtopic.php?t=$1&start=$2 [QSA,L]
# TOPIC
RewriteRule ^topic([0-9]+)\.html$ viewtopic.php?t=$1 [QSA,L]
# POST
RewriteRule ^post([0-9]+)\.html$ viewtopic.php?p=$1 [QSA,L]
# PROFILES
RewriteRule ^membre([0-9]+)\.html$ profile.php?mode=viewprofile&u=$1 [QSA,L]
# END PHPBB PAGES
#####################################################


EDIT: Après quelques test aparement seul les topic et mes profil sont réécrit.

Pour le reste j'ai toujorus des adresse dy type

index.php?f=98

Que se soit pour les cat ou les forum.
Dernière édition par cobra220684 le Ven Juin 09, 2006 10:25 am, édité 1 fois.
cobra220684
PR1
PR1
 
Messages: 137
Inscription: Jeu Juin 08, 2006 7:38 pm

Messagede dcz » Ven Juin 09, 2006 10:23 am

dcz a écrit:
ahh, et bien c'est parfait, et les URL des forums, elles sont ok ?

Teste bien tout, les recherches, le forums, les sujets et les messages.


Et aussi, il ne serait pas dans un dossier ton forum ?

Dans ce cas il faut mettre le .htaccess dans www/ et ajouter le nom du dossier dans les Rewriterules comme expliqué dans l'installe (phpBB est installé dans un sous dossier : replacer phpBB par le vrai nom ;) )

++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21383
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede cobra220684 » Ven Juin 09, 2006 10:26 am

J'ai ajouter un edit dans mon message precedant.

Sous easyphp j'utilise un dossier mais mon htaccess se trouve aussi dans se dossier ce qui ne m'a jamais poser de soucis jusque la.

Et puis si il etait pas reconnu, il me réecrirai aucune url :wink:

Tien pour l'erreur 404 ca me met ca

The requested URL /viewtopic.php was not found on this server.
cobra220684
PR1
PR1
 
Messages: 137
Inscription: Jeu Juin 08, 2006 7:38 pm

Messagede dcz » Ven Juin 09, 2006 10:59 am

Et pourtant ...

Bon, je regarde cette histoire de index.php?f=98

En fait, c'est les url naturelles des forums ça avec CH ?

Lol, je comprend mieux pourquoi ça ne marchait plus avec le mod DLP.

Donc, on va dans un premier temps conserver le standard d'url du mod Simple pour nos testes en local et après on migrera pour aller en ligne.


Donc ouvrir :
Code: Tout sélectionner
includes/sessions.php


Trouver :

Code: Tout sélectionner
      "'(?)index.php\?c=([0-9]*)'",

      "'(?)viewforum.php\?f=([0-9]+)&amp;start=([0-9]+)((&amp;)|(&)){0,1}'",
      "'(?)viewforum.php\?f=([0-9]+)((&amp;)|(&)){0,1}'",



Remplacer par :
Code: Tout sélectionner
      "'(?)index.php\?f=([0-9]+)&amp;start=([0-9]+)((&amp;)|(&)){0,1}'",
      "'(?)index.php\?f=([0-9]+)((&amp;)|(&)){0,1}'",


Trouver et effacer la ligne :


Code: Tout sélectionner
      "cat\\1.html",


Trouver :

Code: Tout sélectionner
   $url = ( strstr ($url, 'start=0') ) ? str_replace( '&amp;start=0', '', $url ) : $url;
   $url = ( strstr ($url, 'postdays=0') ) ? str_replace( '&amp;postdays=0', '', $url ) : $url;
   $url = ( strstr ($url, 'topicdays=0') ) ? str_replace( '&amp;topicdays=0', '', $url ) : $url;
   $url = ( strstr ($url, 'postorder=asc') ) ? str_replace( '&amp;postorder=asc', '', $url ) : $url;


Ajouter après :

Code: Tout sélectionner
   $url = ( strstr ($url, 'order=DESC') ) ? str_replace( '&order=DESC', '', $url ) : $url;
   $url = ( strstr ($url, 'sort=lastpost') ) ? str_replace( '&sort=lastpost', '', $url ) : $url;
   $url = preg_replace('(?)&ppage=([0-9]*)', '', $url);


Note :


Je ne suis pas certain d'avoir bien compris l'utilité du paramètre ppage dans les URL de CH, et j'ai également un doute sur ma façon de le retirer (j'ai quand même vérifie que sans cela marchait ;) ) avec cette ligne :
Code: Tout sélectionner
   $url = preg_replace('(?)&ppage=([0-9]*)', '', $url);


Donc si tout se passe comme prévu :D ppage n'apparaîtra pas dans les URL et tout sera réécrit ;)

Mais il faudra peut être faire encore un test ou deux :roll:
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21383
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede cobra220684 » Ven Juin 09, 2006 12:32 pm

Oula d'un coup ca marche beaucoup moin bien ^^

Warning: Unknown modifier '&' in c:\program files\easyphp1-8\www\phpbbbase\includes\sessions.php on line 690

Warning: main(): Failed opening '' for inclusion (include_path='.;C:/Program Files/EasyPHP1-8\php\pear\') in c:\program files\easyphp1-8\www\phpbbbase\common.php on line 259

Warning: Unknown modifier '&' in c:\program files\easyphp1-8\www\phpbbbase\includes\sessions.php on line 690

Warning: main(): Failed opening '' for inclusion (include_path='.;C:/Program Files/EasyPHP1-8\php\pear\') in c:\program files\easyphp1-8\www\phpbbbase\common.php on line 260

Warning: Unknown modifier '&' in c:\program files\easyphp1-8\www\phpbbbase\includes\sessions.php on line 690

Warning: main(): Failed opening '' for inclusion (include_path='.;C:/Program Files/EasyPHP1-8\php\pear\') in c:\program files\easyphp1-8\www\phpbbbase\common.php on line 261

Fatal error: Cannot instantiate non-existent class: user in c:\program files\easyphp1-8\www\phpbbbase\common.php on line 264
cobra220684
PR1
PR1
 
Messages: 137
Inscription: Jeu Juin 08, 2006 7:38 pm

Messagede dcz » Ven Juin 09, 2006 12:43 pm

Oué, c'est la Reg-Ex.

T'inquiètes ça va le faire :D

Bon, alors essayons ça :
Code: Tout sélectionner
        $url = preg_replace('(?)ppage=([0-9]*)', '', $url);
   $url = ( strstr ($url, '&&') ) ? str_replace( '&&', '&', $url ) : $url;


A la place de ça :

Code: Tout sélectionner
       $url = preg_replace('(?)&ppage=([0-9]*)', '', $url);



Ca modifie vraiment beacoup de chose dans la gestion des url CH, mais en même temps, j'ai bien envie d'offrir un patch pour ce superbe mod.

Bon, il est quand même un peut lourd pour ne que faire des sous forums, mais bon ...

Ahh et j'avais oublié une chose, il faut aussi modifier le .htaccess.

Il faut mettre "index.php" à la place de "viewforum.php" et virer la ligne concernant les catégories (une seule ligne).

Ca donne :
Code: Tout sélectionner
# CATEGORIES
RewriteRule ^cat([0-9]+)\.html$ index.php?c=$1 [QSA,L]
# PAGINATED FORUM
RewriteRule ^forum([0-9]+)-([0-9]+)\.html$ viewforum.php?f=$1&start=$2 [QSA,L]
# FORUM
RewriteRule ^forum([0-9]+)\.html$ viewforum.php?f=$1 [QSA,L]


deviens :

Code: Tout sélectionner
# PAGINATED FORUM
RewriteRule ^forum([0-9]+)-([0-9]+)\.html$ index.php?f=$1&start=$2 [QSA,L]
# FORUM
RewriteRule ^forum([0-9]+)\.html$ index.php?f=$1 [QSA,L]


++
Useful links :
SEO Forum || SEO Directory || SEO phpBB || Search
____________________

Liens Utiles :
Forum référencement || Annuaire référencement || Référencement phpBB || Recherche
dcz
Admin
Admin
 
Messages: 21383
Inscription: Ven Avr 28, 2006 9:03 pm

Messagede cobra220684 » Ven Juin 09, 2006 12:48 pm

Ba j'ai ca maintenant

Warning: Unknown modifier 'p' in c:\program files\easyphp1-8\www\phpbbbase\includes\sessions.php on line 690

Warning: main(): Failed opening '' for inclusion (include_path='.;C:/Program Files/EasyPHP1-8\php\pear\') in c:\program files\easyphp1-8\www\phpbbbase\common.php on line 259

Warning: Unknown modifier 'p' in c:\program files\easyphp1-8\www\phpbbbase\includes\sessions.php on line 690

Warning: main(): Failed opening '' for inclusion (include_path='.;C:/Program Files/EasyPHP1-8\php\pear\') in c:\program files\easyphp1-8\www\phpbbbase\common.php on line 260

Warning: Unknown modifier 'p' in c:\program files\easyphp1-8\www\phpbbbase\includes\sessions.php on line 690

Warning: main(): Failed opening '' for inclusion (include_path='.;C:/Program Files/EasyPHP1-8\php\pear\') in c:\program files\easyphp1-8\www\phpbbbase\common.php on line 261

Fatal error: Cannot instantiate non-existent class: user in c:\program files\easyphp1-8\www\phpbbbase\common.php on line 264


merci de prendre tout se temps pour m'aider
cobra220684
PR1
PR1
 
Messages: 137
Inscription: Jeu Juin 08, 2006 7:38 pm

Suivante

Retourner vers mod Rewrite phpBB2

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité