Archives FluxBB.fr

Les archives de FluxBB.fr

Vous n'êtes pas identifié(e).

#1 18-01-2009 21:39:02

bender
Membre

url rewrite

bonsoir,

J'utilise le Mod NewpunRewrite (qui marche très bien) et je souhaiterai lui apporter une modification.
En effet lorsque je rajoute la balise [Résolu] devant le titre de sujet mon URL devient http://www.monsite/forum/sujet-1-resolu-titre-de-thread

Je voudrais donc que le mot resolu n'apparaisse pas dans URL, est ce possible? Je pense qu'il faut rajouter une règle dans .htaccess mais la quelle?

voici mon .htaccess

Options +FollowSymlinks
RewriteEngine On
RewriteBase /linux/forum
 
RewriteRule ^index.html$ index.php [L]
RewriteRule ^forum-([0-9]+)-([0-9]+).html$ viewforum.php?id=$1&p=$2 [L]
RewriteRule ^forum-([0-9]+)(.*)$ viewforum.php?id=$1 [L]
RewriteRule ^sujet-([0-9]+)-([0-9]+).html$ viewtopic.php?id=$1&p=$2 [L]
RewriteRule ^sujet-([0-9]+)(.*)$ viewtopic.php?id=$1 [L]
RewriteRule ^message-([0-9]+)(.*)$ viewtopic.php?pid=$1 [L]
RewriteRule ^profil-([0-9]+)(.*)$ profile.php?id=$1 [L]
RewriteRule ^inscription.html$ register.php [L]
RewriteRule ^connexion.html$ login.php [L]
RewriteRule ^recherche.html$ search.php [L]
RewriteRule ^recherche-([0-9]+).html$ search.php?search_id=$1 [L]
RewriteRule ^recherche-([0-9]+)-([0-9]+).html$ search.php?search_id=$1&p=$2 [L]
RewriteRule ^utilisateurs.html$ userlist.php [L]
RewriteRule ^recherche-24-heures.html$ search.php?action=show_24h [L]
RewriteRule ^([0-9]+)-mes-messages.html$ search.php?action=show_user&user_id=$1 [L]
RewriteRule ^mes-marque-pages.html$ search.php?action=show_subscriptions [L]
RewriteRule ^recherche-sans-reponse.html$ search.php??action=show_unanswered [L]
RewriteRule ^profile-([0-9]+)(.*)$ profile.php?id=$1 [L]  
RewriteRule ^utilisateurs-pseudo(.*)-groupe(.*)-sort(.*)-ordre(.*)-([0-9]+)(.*)$ userlist.php?username=$1&show_group=$2&sort_by=$3&sort_dir=$4&p=$5 [L]    
RewriteRule ^regles.html$ misc.php?action=rules [L]

merci d'avance

Dernière modification par bender (18-01-2009 21:49:09)

Hors ligne

#2 18-01-2009 23:12:00

M@x
Membre

Re : url rewrite

Il faudrait utiliser les crochet pour exclure ce texte. Mais personnellement à ta place je laisserais, ça permet lors de question d'indiquer aux visiteurs (moteurs de recherche) que le sujet a bien été résolu.


...

Hors ligne

#3 18-01-2009 23:15:21

bender
Membre

Re : url rewrite

Le titre lui même reste avec [résolu] donc l'utilisateur saura que le sujet a été résolu. par contre il est inutile de le faire (re)apparaitre dans le lien (en fin c'est ce que je pense)

Le mot est bien entre les crochets  [ ] Comment devrait-je écrire la règle?

Hors ligne

#4 19-01-2009 18:29:15

bender
Membre

Re : url rewrite

a priori il faudrait mettre:

RewriteRule ^sujet-([0-9]+)-resolu-(.*)$ viewtopic.php?id=$1

mais cela ne semble pas marcher

Hors ligne

#5 19-01-2009 21:54:07

M@x
Membre

Re : url rewrite

Je ne sait pas exactement si c'est possible mais je suis sur que ce n'est pas ta règle qu'il faut utiliser. wink


...

Hors ligne

#6 20-01-2009 19:02:43

bender
Membre

Re : url rewrite

merci pour ta réponse, mais pourrais tu être plus précis(e)?

Par exemple dans viewtopic.php j'ai:

$paging_links = $lang_common['Pages'].': '.paginate($num_pages, $p, 'sujet-'.$id);

Que dois-je rajouter?

merci

Hors ligne

#7 20-01-2009 20:58:42

bender
Membre

Re : url rewrite

Je ne vois pas où il faut faire des modifications, alors je mets toutes les lignes avec "sujet":

function confirm_referrer($script)
{
    global $pun_config, $lang_common;

    $url = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
    $tab = explode("/",$url);
    $newurl = $tab[count($tab)-1];

    if ($script == "viewtopic.php") {
            if ((!preg_match('#^'.preg_quote(str_replace('www.', '', $pun_config['o_base_url']).'/'.$script, '#').'#i', str_replace('www.', '', (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '')))) and (substr($newurl, 0, strpos($newurl,"-"))!="sujet") and (substr($newurl, 0, strpos($newurl,"-"))!="message"))
        message($lang_common['Bad referrer']);
    } else {

    if (!preg_match('#^'.preg_quote(str_replace('www.', '', $pun_config['o_base_url']).'/'.$script, '#').'#i', str_replace('www.', '', (isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : ''))))
        message($lang_common['Bad referrer']);
        }
}
$subject = '<a href="sujet-'.$search_set[$i]['tid'].'-'.pun_url($search_set[$i]['subject']).'">'.pun_htmlspecialchars($search_set[$i]['subject']).'</a>';
$subject = '<a href="sujet-'.$search_set[$i]['tid'].'-'.pun_url($search_set[$i]['subject']).'">'.pun_htmlspecialchars($search_set[$i]['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($search_set[$i]['poster']).'</span>';
$subject_multipage = '[ '.paginate($num_pages_topic, -1, 'sujet-'.$search_set[$i]['tid']).' ]';
$subject = $lang_forum['Moved'].': <a href="sujet-'.$cur_topic['id'].'-'.pun_url($cur_topic['subject']).'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';
                else if ($cur_topic['closed'] == '0')
                        $subject = '<a href="sujet-'.$cur_topic['id'].'-'.pun_url($cur_topic['subject']).'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';
                else
                {
                        $subject = '<a href="sujet-'.$cur_topic['id'].'-'.pun_url($cur_topic['subject']).'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';

#
$subject_multipage = '[ '.paginate($num_pages_topic, -1, 'sujet-'.$cur_topic['id']).' ]';
$paging_links = $lang_common['Pages'].': '.paginate($num_pages, $p, 'sujet-'.$id);
echo '<li><a href="'.$pun_config['o_base_url'].'/sujet-'.$cur_topic['id'].'-'.pun_url($cur_topic['subject']).'.html"  title="'.pun_htmlspecialchars($cur_topic['subject']).'">'.$subject_truncated.'</a></li>'."\n";
echo "\t\t".'<link>'.$pun_config['o_base_url'].'/sujet-'.$cur_topic['id'].'-'.pun_url($cur_topic['subject']).'</link>'."\r\n";
            echo "\t\t".'<description><![CDATA['.escape_cdata($lang_common['Forum'].': <a href="'.$pun_config['o_base_url'].'/forum-'.$cur_topic['fid'].'-'.pun_url($cur_topic['forum_name']).'">'.$cur_topic['forum_name'].'</a><br />'."\r\n".$lang_common['Author'].': '.$cur_topic['poster'].'<br />'."\r\n".$lang_common['Posted'].': '.date('r', $cur_topic['posted']).'<br />'."\r\n".$lang_common['Last post'].': '.date('r', $cur_topic['last_post'])).']]></description>'."\r\n";

merci pour ton aide

Hors ligne

#8 21-01-2009 21:03:17

bender
Membre

Re : url rewrite

j' ai essayé d'adopter ça pour les autres "sujet" me cela ne marche pas, en fait ca ne change rien de tout pour mes liens

Edit:

il y a un truc que je ne comprends pas: une fois mes url's réécris les mots comme le, la, pc etc ne figure pas dans l'url..pourquoi? J'imagine que c'est mon htaccess qui fais ca mais alors pour quelle raison on ne peut pas faire pareil pour [Résolu]?

merci pour vos explications

Dernière modification par bender (21-01-2009 21:14:03)

Hors ligne

#9 21-01-2009 21:51:05

bender
Membre

Hors ligne

#10 21-01-2009 22:23:49

bender
Membre

Re : url rewrite

j'ai essayé de remplacer les lignes avec qui contenait "sujet" de cette manière:

           

$subject = $lang_forum['Moved'].': <a href="sujet-'.$cur_topict['id'].'-'.pun_url($cur_topic['subject']).'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';

Par:

$unresolved_subject = preg_replace("/^\[Résolu\] /", "", $cur_topic);
$subject = $lang_forum['Moved'].': <a href="sujet-'.$unresolved_subject['id'].'-'.pun_url($cur_topic['subject']).'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';

Hors ligne

#11 21-01-2009 22:48:39

bender
Membre

Re : url rewrite

C'est normal que cela marche pas, cela ne correspond pas à l'exemple que je t'ai donné, tu m'as fait n'importe quoi là hmm

siffle

Bon j'ai fais la modification sur les trois lignes qui contenait le "sujet" mais maintenant tout les liens de forum (même ceux qui n'ont pas de "resolu") se termine par punoogle

exemple:

http://localhost/linux/forum-linux/sujet-320-punoogle

Dernière modification par bender (21-01-2009 22:49:19)

Hors ligne

#12 22-01-2009 18:48:24

bender
Membre

Re : url rewrite

salut,

Voilà les modifications:

en haut de fichier viewforum j'ai mis:

$unresolved_subject = preg_replace("/^\[Résolu\] /", "", $cur_topic['subject']);

puis:


if ($cur_topic['moved_to'] != 0)

            $subject = $lang_forum['Moved'].': <a href="sujet-'.$cur_topic['id'].'-'.pun_url($unresolved_subject).'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';

        else if ($cur_topic['closed'] == '0')

            $subject = '<a href="sujet-'.$cur_topic['id'].'-'.pun_url($unresolved_subject).'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';

        else

        {

            $subject = '<a href="sujet-'.$cur_topic['id'].'-'.pun_url($unresolved_subject).'">'.pun_htmlspecialchars($cur_topic['subject']).'</a> <span class="byuser">'.$lang_common['by'].' '.pun_htmlspecialchars($cur_topic['poster']).'</span>';

            $icon_text = $lang_common['Closed icon'];

            $item_status = 'iclosed';

        }

Dernière modification par bender (22-01-2009 20:41:59)

Hors ligne

#13 22-01-2009 21:34:06

bender
Membre

Re : url rewrite

après la modification les liens sont devenus comme avant et "resolu" y est aussi :-/

Hors ligne

#14 22-01-2009 22:05:03

romain9441
Admin locker

Re : url rewrite

Je serai toi, j'abandonnerai cette mod au profit d'une qui ne modifie pas le titre du sujet directement (bien que n'existant pas), j'en avais codé une comme ça mais je n'ai plus de trace de celle-ci... hmm

Si tu as le courage, sache que les modifications à faire ne sont pas énormes. wink


Avant de poser une question, avez-vous consulté la FAQ ou fait une recherche ?

Pas de support si pas d'adresse de forum !

Hors ligne

#15 22-01-2009 22:10:59

bender
Membre

Re : url rewrite

le voici:



Code trop long supprimé
autre chose:

En local j'ai un soucis d'accents sous apache2 (je vais régler ca plus tard) ce qui fait que mes topic's sont: [Résolu]  CentOS 5.2 comment installer?

Et de coupr ceux-là sont reecris correctement (je veux dire que "resolu" n'est pas dans url)

Dernière modification par bender (22-01-2009 22:13:05)

Hors ligne

Pied de page des forums