• Super User

    [phpBB] Topic title nell'url tramite mod_rewrite

    Ciao ragazzi,
    partendo da questo link http:// www.computerbb.org/about2261.html ho trovato questo mods.

    Il fatto è che proprio non mi funziona. Le pagine mi rimangono sempre in .php?par=X invece che trasformarsi in xxxxx-vt-X.htm

    Ecco il codice:

    # 
    #-----[ OPEN ]------------------------------------------ 
    # 
     
    includes/page_header.php 
     
    # 
    #-----[ FIND ]------------------------------------------ 
    # 
     
    $template->set_filenames(array( 
        'overall_header' => ( empty($gen_simple_header) ) ? 'overall_header.tpl' : 'simple_header.tpl') 
    ); 
     
    # 
    #-----[ AFTER, ADD  ]------------------------------------------ 
    # 
     
    ob_start(); 
     
     
    function make_url_friendly($url) 
    { 
     
        $url = strtolower($url); 
     
        $find = array(' ', 
                '&', 
                '\r\n', 
                '\n', 
                '/', 
                '\\', 
                '+'); 
     
        $url = str_replace ($find, '-', $url); 
     
        $find = array(' ', 
                'é', 
                'è', 
                'ë', 
                'ê'); 
     
        $url = str_replace ($find, 'e', $url); 
     
        $find = array(' ', 
                'ó', 
                'ò', 
                'ô', 
                'ö'); 
     
        $url = str_replace ($find, 'o', $url); 
     
        $find = array(' ', 
                'á', 
                'à', 
                'â', 
                'ä'); 
     
        $url = str_replace ($find, 'a', $url); 
     
        $find = array(' ', 
                'í', 
                'ì', 
                'î', 
                'ï'); 
     
        $url = str_replace ($find, 'i', $url); 
     
        $find = array(' ', 
                'ú', 
                'ù', 
                'û', 
                'ü'); 
     
        $url = str_replace ($find, 'u', $url); 
     
        $find = array('/[^a-z0-9\-<>]/', 
                '/[\-]+/', 
                '/<[^>]*>/'); 
     
        $repl = array('', 
                '-', 
                ''); 
     
        $url =  preg_replace ($find, $repl, $url); 
     
        return $url; 
     
    } 
     
     
    function rewrite_urls($content) 
    { 
     
        function if_query($amp) 
        { 
     
            if($amp != '') 
            { 
                return '?'; 
            } 
     
        } 
     
        $url_in = array('/(?<!\/)viewforum.php\?f=([0-9]+)((&amp;)|(&)){0,1}([^>]+>)(.*? )<\/a>/e', 
                '/(?<!\/)viewtopic.php\?p=([0-9]+)((&amp;)|(&)){0,1}([^>]+>)(.*?)<\/a> /e', 
                '/(?<!\/)viewtopic.php\?t=([0-9]+)((&amp;)|(&)){0,1}([^>]+>)(.*?)<\/a> /e'); 
     
        $url_out = array("make_url_friendly('\\6') . '-vf\\1.html' . if_query('\\2') . stripslashes('\\5\\6') . '</a>'", 
                "make_url_friendly('\\6') . '-vp\\1.html' . if_query('\\2') . stripslashes('\\5\\6') . '</a>'", 
                "make_url_friendly('\\6') . '-vt\\1.html' . if_query('\\2') . stripslashes('\\5\\6') . '</a>'"); 
     
        $content = preg_replace($url_in, $url_out, $content); 
     
        return $content; 
     
    }    
     
    # 
    #-----[ OPEN ]------------------------------------------ 
    # 
     
    includes/page_tail.php 
     
    # 
    #-----[ FIND ]------------------------------------------ 
    # 
     
    if ( $do_gzip_compress ) 
    { 
        // 
        // Borrowed from php.net! 
        // 
        $gzip_contents = ob_get_contents(); 
        ob_end_clean(); 
     
        $gzip_size = strlen($gzip_contents); 
        $gzip_crc = crc32($gzip_contents); 
     
        $gzip_contents = gzcompress($gzip_contents, 9); 
        $gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4); 
     
        echo "\x1f\x8b\x08\x00\x00\x00\x00\x00"; 
        echo $gzip_contents; 
        echo pack('V', $gzip_crc); 
        echo pack('V', $gzip_size); 
    } 
     
    # 
    #-----[ REPLACE, WITH  ]------------------------------------------ 
    # 
     
    if ( $do_gzip_compress ) 
    { 
        // 
        // Borrowed from php.net! 
        // 
        $gzip_contents = ob_get_contents(); 
        ob_end_clean(); 
        echo rewrite_urls($contents); 
        global $dbg_starttime; 
     
        $gzip_size = strlen($gzip_contents); 
        $gzip_crc = crc32($gzip_contents); 
     
        $gzip_contents = gzcompress($gzip_contents, 9); 
        $gzip_contents = substr($gzip_contents, 0, strlen($gzip_contents) - 4); 
     
        echo "\x1f\x8b\x08\x00\x00\x00\x00\x00"; 
        echo $gzip_contents; 
        echo pack('V', $gzip_crc); 
        echo pack('V', $gzip_size); 
    } 
    else 
    { 
        $contents = ob_get_contents(); 
        ob_end_clean(); 
        echo rewrite_urls($contents); 
        global $dbg_starttime; 
    } 
    

    .HTACCESS

    Options +FollowSymlinks

    RewriteEngine On 
    #this may cause isues with subdirs and so I have not enabled it. 
    #RewriteBase / 
     
    RewriteRule [.]*-vf([0-9]*) viewforum.php?%{QUERY_STRING}&f=$1 
    RewriteRule [.]*-vp([0-9]*) viewtopic.php?%{QUERY_STRING}&p=$1 
    RewriteRule [.]*-vt([0-9]*) viewtopic.php?%{QUERY_STRING}&t=$1 
    

    I dubbi che mi sono venuti sono 2:

    1. Avevo dei mods in queste 2 pagine, allora ho provato anche con page_header e page_tail presi vergini ma non funziona lo stesso
    2. Forse il mio problema è che ho l'indirizzo con sottodominio forum.recensiamo.it , ma anche qui, provando a digitare un indirizzo con finale .htm la pagina si vede. Il problema sembra dunque nella scrittura degli url in maniera corretta. (da qui che il .htaccess sia corretto)

    Grazie a chiunque possa aiutarmi a comprendere il codice 😉

    PS: credo che il succo stia nel page_tail.php


  • Community Manager

    Ciao Tuono,

    volevo provarlo anche io, so per certo che jantima lo ha fatto 🙂

    [url=http://www.antiworld.biz/antiworld/index.php]Jantima ci 6?


  • Super User

    stupendo.... :sbav:

    cosè che nn funziona...??


  • Super User

    non funziona nel senso che dopo che ho messo il mod mi da 2 problemi

    1. con il mio page_header già modificato mi da pagina bianca (funziona solo se tolgo ob_start() ma ovviamente non fa la modifica dei link)
    2. con il page_header originale non da errori ma non modifica i link che rimangono sempre .php?par=X

    Che prob potrei avere?

    Vi posto i miei page_header e page_tail?


  • User Attivo

    Non saprei dirti dove sta il problema, posso dirti che io ho installato un Mod che mi fa il rewrite di tutti gli url, in modo carino e friendly, preso da qui:
    http://www.webmedic.net/released-phpbb-google-keyword-urls-221-seo-mod-vt25564.html

    E che da me funziona perfettamente: http://www.antiworld.biz/antiworld/index.php

    Poi ho messo anche queste cose belle:
    Questa è una pagina php, che funziona crea il sitemap del phpbb, e te lo fa nel formato che google vuole, così poi puoi fare la submission facilmente. Qui potete scaricarlo direttamente da me:
    http://www.antiworld.biz/antiworld/files/keyword-urls-google-sitemap.zip
    Questo L'url da dove ho preso il mod:
    http://www.webmedic.net/released-phpbb-google-keyword-urls-sitemap-generator-161-vt25565.html
    Questo l'esempio sul mio forum:
    http://www.antiworld.biz/antiworld/sitemap.php

    Quest'altro Mod, non è altro che una bella paginetta php che lavora in collaborazione con il primo mod keyword-urls, e che vi permette di creare le liste con gli url friendly dei topics recenti dei vostri forum per pubblicarli ovunque vogliate (anche fuori dal phpbb) , personalizzabile con un sacco di opzioni! ecco l'esempio che ho su da me:
    http://www.antiworld.biz/antiworld/topics_anywhere.php
    E nella home www.antiworld.biz ho i link ai topic recenti.

    Tutti i Mod li ho presi da webmedic, ma in questo momento, webmedic mi sembra offline... non posso verificare se i links che ho scritto siano ancora validi... bisognerebbe ricontrollare tra breve se riuppa...
    Dopo che ho messo questo mod, google mi ha indicizzato tutto il forum, visitando anche 8000 pagine al giorno.
    Comunque se il sito non riuppa al massimo vi passo i files zip


  • Super User

    Ciao Jantima,

    Il mod del Google SiteMap l'ho già usato: http ://forum.recensiamo.it/sitemap.xml

    I topic in home li ho già qui: http :// www .recensiamo.it

    Il link come dici tu non funziona ora, il mod che hai usato è lo stesso che ho postato io?

    Ah, altra cosa, ho notato che però per le pagine superiori alla 1 vengono aggiunti cmq i parametri come in questo caso:
    http://www.antiworld.biz/antiworld/2-vt2265.html?postdays=0&postorder=asc&start=18

    Quindi non so se alla fine è così conveniente.

    Grazie mille per l'aiuto..


  • User Attivo

    [url=http://www.antiworld.biz/antiworld/files/keyword-urls-mod.zip]Qui c'è Il file zip, che contiene tra l'altro Il mod in questione, che non credo sia lo stesso, magari è simile, e che potete visionare [url=http://www.antiworld.biz/antiworld/files/phpBB-google-keyword-URLs.txt]qui

    Per il fatto che le pagine dopo la uno, non funzionano... c'era una discussione in corso sul forum webmedic, ma non so se abbia avuto sviluppi... di una cosa sono sicura.. nel Topic anywhere, dove ti lista i topic recenti, c'è una funzione che linka all'utimo post di ogni topic, e lo fa con un url amichevole, e ti manda direttamente alla pagina, anche dopo alla prima.. in realtà non funziona tanto bene, se guardate nel topic del forum a riguardo io ho postato dei fix, poi io per farlo funzionare ho usato un metodo che mi chiama l'url: /image-vp40808.html#40808
    questo funziona, e bene o male fa si che google mi guardi le pagine anche dopo la prima, solo che non riporta il titolo come nome della pagina..


  • Super User

    Jantima,
    ti ringrazio molto per il mod.

    L'ho testato, è molto simile a quello che ho postato io ed ovviamente non funziona.
    Mi da pagina bianca, non riesco proprio a capire dove sia il problema! :arrabbiato:

    Se qualcuno ha qualche illuminazione o ipotesi...è ben accetta! 😉


  • Community Manager

    ma che mod hai installato sopra, non è che modificano il template subsilver?

    dovresti provare con un forum senza mod e vedere se funziona


  • Super User

    Lo sto provando su subsilver ma non toccano i template.

    E' sicuramente un problema mio in quanto a tutti gli altri funziona.

    Il fatto è che non capisco quale possa essere il problema.

    Alla fine modifico 2 file e non con cose abissali...ci sto sbattendo la testa...ma non ne vengo fuori... :arrabbiato:


  • Community Manager

    Tuonorosso esiste nu mod che richiamando il file .txt in automatico fa tutte le modifiche, non ricordo il nome...


  • Super User

    si beh giorgio...ma farebbe cmq quello che faccio io a mano...e quello che faccio a mano non va :arrabbiato: :arrabbiato: :arrabbiato: :arrabbiato:

    Ho qualche altro mod che va in conflitto con questo..ma non capisco cosa.

    Ho acnhe provato a ripristinare gli originali page_header.php e page_tail.php e poi applicare il mod..ma non c'è stato niente da fare..

    :bho:


  • User Attivo

    Credo che serva debuggare un po' per trovare l'inghippo che ti genera la pagina bianca... io quando ho installato il topic anywhere c'era un ' in mezzo sparso per il codice che causava la pagina bianca...
    E poi altri bug, un bug lo riscontrai usando dreamweaver per editare i file php, praticamente dreamweaver mi cambiava letteralmente la sintassi di una funzione, cambiando i parametri che la funzione doveva ricevere, tipo da str_replace(,,) me lo faceva diventare str_replace(,,,,)
    quindi poi sballava tutto perchè i parametri non coincidevano..
    Editando il file col blocco note non si sballava e ne sono venuta a capo.

    In ogni caso ho trovato l'inghippo solo debuggando le pagine..
    Se riesci a darmi l'url delle pagine sballate, ci guardo.


  • Super User

    ora non è attivo il mod perchè causerebbe pagina bianca...

    se volete vi posto il page_header e il page_tail, che ora vanno ma che se modifico mi generano pagina bianca...


  • User Attivo

    Si, postali che li guardiamo. Magari fai dei .txt linkati?


  • Super User

  • User Attivo

    Rileggendo tutto mi stanno venendo dei dubbi...
    all'inizio hai detto che hai installato il mod, e tutto funzionava ancora ( no pagine bianche) ma che semplicemente gli url non erano modificati?
    Inoltre hai detto che il forum sta in un sottodominio?
    se è così forse dovevi solo sistemare le regole nel .htaccess

    Questi page header and tail che hai postato sono quelli con già i tuoi altri mod inseriti?
    con quale dei due Url rewrite mod fanno il conflitto? col primo o col secondo, o entrambi?


  • User Attivo

    fai una cosa: metti su i tuoi files modificati,
    modificali con il mod degli url,
    posta quello che hai in .htaccess (nella public_html)
    posta il link delle pagine che danno errore,
    e attendi fiducioso!!...


  • User Attivo

    e apri MSN 😉


  • Super User

    Un grazie infinito a Jantima e Vladiat0r per l'aiuto che mi hanno dato stasera!

    Ecco a voi lo script funzionante 😄
    http:// forum.recensiamo.it/index.php

    Il prob era su un ob_end_clear(); che mi cancellava tutto prima che venisse letto 😄

    http: //www .recensiamo.it
    Qui ho messo dei link ai topic tramite una funzioncina fatta da me 😄