| |
|
| :: |
| Auteur |
Message |
clement106
Inscrit le: 11 Fév 2008 Messages: 10
|
Posté le: Lun Fév 11, 2008 10:37 am Sujet du message: Peut-on récupérer des URL Rewritées |
|
|
Voilà mon problème, avant d'installer phpbBB3 et le mode de rewrite avec phpBB SEO j'utilisais un rewrite complètement différent donc mes urls étais au final aussi différentes de maintenant.
J'aimerais pouvoir faire une redirection automatique de mes pages (surtout pour les sujets).
Donc j'aurais pensé à une redirection 301 depuis ma page viewtopic.php mais il me faudrait récupérer l'url rewritée et je ne sais pas comment faire pour y arriver si cela est possible bien sur?
Merci d'avance. |
|
|
| Revenir en haut de page |
|
 |
|
 |
SeO Administrateur - Site Admin

Inscrit le: 15 Mar 2006 Messages: 3821
|
Posté le: Mar Fév 12, 2008 9:38 am Sujet du message: Re: Peut-on récupérer des URL Rewritées |
|
|
Dans le principe, c'est assez simple, il suffit d'installer / activer le zéro duplicate et de conserver les rewriterules associées aux anciennes urls dans le .htaccess de phpBB3, après :
| Code: | | # HERE IS A GOOD PLACE TO ADD OTHER PHPBB RELATED REWRITERULES |
Le principe est le suivant, en prenant l'exemple d'une url de sujet :
| Code: | | ancienneurlxx.html => ancienne rewriterule => viewtopic.php => zero duplicate => HTTP 301 => nouvelle-url-txx.html => nouvelle rewriterule => viewtopic.php et affichage de la page |
La séquence décrite ci dessus ne renvois qu'un unique header HTTP 301 avant le chargement final de la page.
Poste ici ton ancien et ton nouveau .htaccess si tu as besoin de plus de conseils  |
_________________ phpBB SEO || SEO Forum || Forum Référencement
GYM Sitemap & RSS for phpBB3 has been released ! || GYM Sitemap & RSS for phpBB3 est disponible ! |
|
| Revenir en haut de page |
|
 |
clement106
Inscrit le: 11 Fév 2008 Messages: 10
|
Posté le: Mar Fév 12, 2008 6:01 pm Sujet du message: Re: Peut-on récupérer des URL Rewritées |
|
|
Merci pour cette réponse, le problème c'est que j'utiliais des dossiers virtuel et que ceux ci ont changés de nom.
Voilà ce que sa donnait avant dans mon .htacces pour une simple page de sujet (pour la première page):
RewriteRule ^([a-zA-Z0-9\-]*)/([a-zA-Z0-9\-]*)/([a-zA-Z0-9\-]*)-t([0-9]*).* /viewtopic.php?nom_categorie=$1&nom_forum=$2&nom_page=$3&t=$4
Le problème c'est que comme je l'ai dit, le nom de mes sous-forums ont changés donc je ne pourrais pas les récupérer pour la redirection.
Je viens de voir que l'on peut mette du language php dans les templates donc je vais essayer de récuperer l'url du sujet pour permettre cette redirection. (ca serait une redirection en 2 foies). |
|
|
| Revenir en haut de page |
|
 |
SeO Administrateur - Site Admin

Inscrit le: 15 Mar 2006 Messages: 3821
|
Posté le: Mar Fév 12, 2008 6:40 pm Sujet du message: Re: Peut-on récupérer des URL Rewritées |
|
|
Donc, au moins pour les sujets, c'est super simple, il te suffit d'ajouter un slash "/" dans la classe de caractère de cette rewriterule :
| Citation: | # TOPIC WITHOUT FORUM ID & DELIM
RewriteRule ^[a-z0-9_-]*/?[a-z0-9_-]*-t([0-9]+)(-([0-9]+))?\.html$ viewtopic.php?t=$1&start=$3 [QSA,L,NC] |
qui deviens :
| Citation: | # TOPIC WITHOUT FORUM ID & DELIM
RewriteRule ^[[a-z0-9_/-]*-t([0-9]+)(-([0-9]+))?\.html$ viewtopic.php?t=$1&start=$3 [QSA,L,NC] |
A adapter à la tienne (chemins et slashes), et le tour est joué, le delimiteur "-t" qui ne change pas entre les deux standards suffira a capter l'id de tous les sujets, anciennes et nouvelles urls et le zéro duplicate fera le reste en une seule redirection
Pour les forums eux même, c'est pus délicats, tu pourrais inclure un fichier php contenant un tableau des redirections (array('ancienneuri' => 'nouvelleuri')) à effectuer quand le match sur l'uri fait dans viewforum.php n'as pas été concluant, c'est à dire quand une uri en dossier type forum-url/ est liée à viewforump.php mais que "forum-url" ne correspond à aucune url de forum personnalisée. Cela se passerait juste avant d'envoyer le header 404 et le message ce forum n'existe pas :
Dans viewforum.php :
| Code: | // www.phpBB-SEO.com SEO TOOLKIT BEGIN
if ($forum_id == 0) {
$phpbb_seo->get_forum_id($forum_id, $start);
if ($forum_id == 0) {
header('HTTP/1.1 404 Not Found');
}
}
// www.phpBB-SEO.com SEO TOOLKIT END |
Tu peux lancer la verif juste avant :
| Code: | | header('HTTP/1.1 404 Not Found'); |
L'url du forum à tester récupéréé depuis l'uri s'obtiendrait en faisant :
| Code: | | $path = str_replace($phpbb_seo->seo_path['phpbb_script'], '', $phpbb_seo->seo_path['current_path']); |
Tu testes si $path est présent dans le tableau contenant les anciennes url associée aux nouvelles, et si tu as une correspondance, tu lances :
| Code: | | $phpbb_seo->seo_redirect($phpbb_seo->seo_path['phpbb_urlR'] . $nouvelle_uri_forum); |
pour une belle 301, sinon, tu laisses faire le code comme si de rien était.
$phpbb_seo->seo_path['phpbb_urlR'] contient l'url complète du forum (example.com/phpbb/) et prend en compte l'option racine virtuelle.
 |
_________________ phpBB SEO || SEO Forum || Forum Référencement
GYM Sitemap & RSS for phpBB3 has been released ! || GYM Sitemap & RSS for phpBB3 est disponible ! |
|
| Revenir en haut de page |
|
 |
clement106
Inscrit le: 11 Fév 2008 Messages: 10
|
Posté le: Mar Fév 12, 2008 7:15 pm Sujet du message: Re: Peut-on récupérer des URL Rewritées |
|
|
| Merci beaucoup pour cette solution dévelopée, je vais me mettre à la tache dès que j'aurais un peu de temps... |
|
|
| Revenir en haut de page |
|
 |
clement106
Inscrit le: 11 Fév 2008 Messages: 10
|
Posté le: Sam Fév 16, 2008 11:41 am Sujet du message: Re: Peut-on récupérer des URL Rewritées |
|
|
Voilà enfin un peu de temps pour résoudre ce problème...
Je viens de modifier mon .htacces pour les urls de sujet.
Mes anciennes urls marchent mais il n'y a pas de redirection.
Par exemple si je modifie le nom d'un sujet dans une url et que je recharge la page, il ne se passe rien.
Exemple:
forum1/essai1-t1.html => modifié par forum1/essai2-t1.html, la page va s'afficher mais la redirection ne se fera pas. Que dois-je faire pour que celà fonctionne?
(Le no duplicate est bien activé)
Merci.
Je viens de trouver mon erreur, j'ai installé le mod no duplicate et non pas zero duplicate. Maintenant ça marche pour les redirections des sujets. |
|
|
| Revenir en haut de page |
|
 |
clement106
Inscrit le: 11 Fév 2008 Messages: 10
|
Posté le: Sam Fév 16, 2008 1:04 pm Sujet du message: Re: Peut-on récupérer des URL Rewritées |
|
|
J'ai réussi pour les redirections des forums et des catégories de la même façon que pour les sujets en rajoutant dans mon fichier .htacces:
#Anciennes urls forums
RewriteRule ^([a-zA-Z0-9\-]*)/([a-zA-Z0-9\-]*)-f([0-9]*)-([0-9]*).* /viewforum.php?f=$3&start=$4 [QSA,L,NC]
RewriteRule ^([a-zA-Z0-9\-]*)/([a-zA-Z0-9\-]*)-f([0-9]*).* /viewforum.php?f=$3 [QSA,L,NC]
#Anciennes urls des catégories
RewriteRule ^([a-zA-Z0-9\-]*)-c([0-9]*).* /viewforum.php?f=$2 [QSA,L,NC]
Merci pour votre aide et au mod zero duplicate!!  |
|
|
| Revenir en haut de page |
|
 |
SeO Administrateur - Site Admin

Inscrit le: 15 Mar 2006 Messages: 3821
|
Posté le: Dim Fév 17, 2008 12:34 pm Sujet du message: Re: Peut-on récupérer des URL Rewritées |
|
|
Juste :
| Code: | | RewriteRule ^([a-zA-Z0-9\-]*)-c([0-9]*).* /viewforum.php?f=$2 [QSA,L,NC] |
ne suffit pas pour les catégories, le problème, c'est que la conversion des catégories en forums ne conserve pas l'id original de la catégorie, le convertisseur utilises les premières id de forums disponibles, du coup, tu ne redirige pas vers la bonne catégorie, mais vers le forum qui a l'id qu'avais la catégorie, s'il existe.
C'est pas super important, mais bon. Pour rediriger il faudrait donc passe par un script qui renseignerait sur les correspondance entre ancienne id de catégorie et nouvelle id de forum. |
_________________ phpBB SEO || SEO Forum || Forum Référencement
GYM Sitemap & RSS for phpBB3 has been released ! || GYM Sitemap & RSS for phpBB3 est disponible ! |
|
| Revenir en haut de page |
|
 |
clement106
Inscrit le: 11 Fév 2008 Messages: 10
|
Posté le: Dim Fév 17, 2008 2:01 pm Sujet du message: Re: Peut-on récupérer des URL Rewritées |
|
|
Merci pour cette information, je pensais que la conversion ne changerait pas les ID.
Comme je n'ai que 9 catégories, je vais le faire manuellement dans mon .htaccess, quelque chose du genre:
RewriteRule ^divers-c4.* /divers/ [R=301] |
|
|
| Revenir en haut de page |
|
 |
SeO Administrateur - Site Admin

Inscrit le: 15 Mar 2006 Messages: 3821
|
Posté le: Dim Fév 17, 2008 3:03 pm Sujet du message: Re: Peut-on récupérer des URL Rewritées |
|
|
Idéalement, il faut les rediriger vers le forum qui a pris leur place après conversion.
Un truc genre :
| Code: | | RewriteRule ^[a-z0-9_-]*-c([0-9]+)\.html? /cat.php?c=$1 [QSA,L,NC] |
Note que j'ai préféré rendre la rewriterule plus scticte que la tienne, il faut absolument un id, et une extension html ou htm, c'est plus sure.
Dans cat.php, tu n'aurai qu'a construire un tableau associatif associant les anciennes ID de catégories à leur nouvelle url complète (vu qu'il y en a 9, c'est vite fait) et rediriger en cas de succès avec un header http 301, ou si l'id n'existe pas, vers l'index du forum par exemple.
Ça ou, 9 rewriterules dans le .htaccess, mais, c'est un peut plus lourd. |
_________________ phpBB SEO || SEO Forum || Forum Référencement
GYM Sitemap & RSS for phpBB3 has been released ! || GYM Sitemap & RSS for phpBB3 est disponible ! |
|
| Revenir en haut de page |
|
 |
clement106
Inscrit le: 11 Fév 2008 Messages: 10
|
Posté le: Lun Fév 18, 2008 11:13 am Sujet du message: Re: Peut-on récupérer des URL Rewritées |
|
|
Si j'ai bien compris, il faudrait faire comme celà (attention code débutant...):
| Code: |
<?php
/**
Redirection catégories
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
$id = 0;
if ( isset($HTTP_GET_VARS['c']) )
{
$id = intval($HTTP_GET_VARS['c']);
}
if ($id != NULL)
{
$categorie[9] = "categorie-1";
$categorie[8] = "categorie-2";
$categorie[6] = "categorie-3";
$categorie[2] = "categorie-4";
$categorie[5] = "categorie-5";
//Redirection permanente (301)
header(
"Status: 301 Moved Permanently", false, 301);
header(
"Location: " . $chemin_forum . $categorie[$id] . "/");
exit();
}
else
{
//redirection permanente (301)
header(
"Status: 301 Moved Permanently", false, 301);
header(
"Location: " . $chemin_forum . "index.php");
exit();
}
?>
|
Et dans mon .htacces remplacer les .* par des .html ? |
|
|
| Revenir en haut de page |
|
 |
SeO Administrateur - Site Admin

Inscrit le: 15 Mar 2006 Messages: 3821
|
Posté le: Mar Fév 19, 2008 10:09 am Sujet du message: Re: Peut-on récupérer des URL Rewritées |
|
|
| Code: | <?php
/**
Redirection catégories
*/
// A remplacer par la vrai url du forum (sans index.php) et un slash à la fin
$chemin_forum = 'http://www.example.com/phpbb/';
$categorie = array( 9 => "categorie-1",
8 => "categorie-2/",
6 => "categorie-3/",
2 => "categorie-4/",
5 => "categorie-5/",
);
$id = 0;
if ( isset($HTTP_GET_VARS['c']) )
{
$id = intval($HTTP_GET_VARS['c']);
}
if (!empty($id) && isset($categorie[$id]))
{
//Redirection permanente (301)
header(
"Status: 301 Moved Permanently", false, 301);
header(
"Location: " . $chemin_forum . $categorie[$id]);
exit();
}
else
{
//redirection permanente (301)
header(
"Status: 301 Moved Permanently", false, 301);
header(
"Location: " . $chemin_forum . "index.php");
exit();
}
?> |
Donc, pas besoin de lancer une session ici, ça ne sert à rien, et c'est beaucoup plus léger comme ça.
Aussi, j'ai préféré déclare le tableau des redirection proprement, en mettant l'url complètes (avec le slash).
Pour le redirect par défaut, ajoute index.php uniquement si c'est bien l'url de l'index de ton forum ( par défaut il est viré, ou alors, c'est plutôt forum.html).
Pour le .htaccess, il faut remplacer le .* de la fin par "\.html" ou "\.html?" pour accepter aussi les .htm. |
_________________ phpBB SEO || SEO Forum || Forum Référencement
GYM Sitemap & RSS for phpBB3 has been released ! || GYM Sitemap & RSS for phpBB3 est disponible ! |
|
| Revenir en haut de page |
|
 |
clement106
Inscrit le: 11 Fév 2008 Messages: 10
|
Posté le: Mar Fév 19, 2008 6:23 pm Sujet du message: Re: Peut-on récupérer des URL Rewritées |
|
|
Merci beaucoup pour m'avoir refait mon code propre et sans faute.
J'ai aussi corrigé mon .htacces avec tes conseils.
Je vais maintenant m'attaquer à la réécriture de:
search.php?search_id=active_topics car je n'ai pas vu de mod là dessus il me semble.
Merci encore et peut-être à bientôt... |
|
|
| Revenir en haut de page |
|
 |
SeO Administrateur - Site Admin

Inscrit le: 15 Mar 2006 Messages: 3821
|
Posté le: Jeu Fév 21, 2008 10:03 am Sujet du message: Re: Peut-on récupérer des URL Rewritées |
|
|
Pour l'instant, seul les url de recherche des messages d'un membre sont réécrites.
Il doit simplement falloir ajouter une rewriterule pour ajouter le cas que tu cites, et si, tes liens passent bien par happend_sid, un cas dans les méthodes associés (fonction search dans phpbb_seo_class.php) |
_________________ phpBB SEO || SEO Forum || Forum Référencement
GYM Sitemap & RSS for phpBB3 has been released ! || GYM Sitemap & RSS for phpBB3 est disponible ! |
|
| Revenir en haut de page |
|
 |
clement106
Inscrit le: 11 Fév 2008 Messages: 10
|
Posté le: Sam Mar 08, 2008 5:11 pm Sujet du message: Re: Peut-on récupérer des URL Rewritées |
|
|
Je viens de rewriter search.php?search_id=active_topics.
Mais je n'arrive pas à bien configurer mon .htacces.
J'ai rewrité trois urls:
- search.php?search_id=sujets-recents
- search.php?search_id=sujets-populaires
- search.php?search_id=sujets-plus-regardes
Ce qui donne:
- sujets-recents.html ou sujets-recents-25.html, etc.
- sujets-populaires.html ou sujets-populaire-25.html, etc.
- sujets-plus-regardes.html ou sujets-plus-regardes-25.html, etc.
Donc j'ai mis dans mon .htacces:
| Code: | RewriteRule ^/sujets-recents*(-([0-9]+))?\.html$ /search.php?search_id=sujets-recents&start=$2 [QSA,L,NC]
RewriteRule ^/sujets-populaires*(-([0-9]+))?\.html$ /search.php?search_id=sujets-populaires&start=$2 [QSA,L,NC]
RewriteRule ^/sujets-plus-regardes*(-([0-9]+))?\.html$ /search.php?search_id=sujets-plus-regardes&start=$2 [QSA,L,NC] |
Mais j'aurais voulu le faire en une seule foie, avec quelque chose du genre:
| Code: | | RewriteRule ^/[a-z0-9_-]*(-m([0-9]+))?\.html$ /search.php?search_id=$1&start=$2 [QSA,L,NC] |
Mais sa ne marche pas, j'arrive directement sur la page de recherche.
J'ai aussi essayé de plein de façons différentes mais toujours pareil...
Quesque je devrais changer pour que sa marche?
Merci. |
|
|
| Revenir en haut de page |
|
 |
|
|
| Navigation |
Autres sujets de discussion |
|
|
|
|
|
|
|