• Dizaino ir programavimo pamokos

  •  
    Thread Rating:
    • 0 Votes - 0 Average
    • 1
    • 2
    • 3
    • 4
    • 5
    [PAMOKA] Nuorodų trumpinimas .htaccess pagalba

    Member


    ***
    87

    0
    Post: #1
    RE: [PAMOKA] Nuorodų trumpinimas .htaccess pagalba
    Taigi kaip ir žadėjau sukūriau pamoką, kurios norėjo nariai, pradedam.

    1. Mums reikės susikurti .htacces failiuką, FTP spaudžiame dešinę ir pasirenkame "Create new file", jį pavadiname .htaccess
    2. Į failiuko vidų įrašome:

    Code:
    RewriteEngine on

    3. Dabar norėdami pagrindinį puslapį pavadinti savaip, rašome eilutę:

    Code:
    RewriteRule ^pagrindinis/$ index.php [N]

    Kiekvieną puslapį taip ir pervadinate, o jeigu norite tai padaryti su naujienomis, tai:

    1. Įrašykite šią funkciją į maincore.php failą, apačioje:

    Code:
    function seoname($seoit) {
        $seoit = str_replace('=',' ',$seoit);
        $seoit = str_replace('/',' ',$seoit);
        $seoit = str_replace('\\',' ',$seoit);
        $seoit = str_replace('@',' ',$seoit);
        $seoit = str_replace('~',' ',$seoit);
        $seoit = str_replace('!',' ',$seoit);
        $seoit = str_replace('£',' ',$seoit);
        $seoit = str_replace('?',' ',$seoit);
        $seoit = str_replace('!',' ',$seoit);
        $seoit = str_replace('$',' ',$seoit);
        $seoit = str_replace('%',' ',$seoit);
        $seoit = str_replace('^',' ',$seoit);
        $seoit = str_replace('*',' ',$seoit);
        $seoit = str_replace('_',' ',$seoit);
        $seoit = str_replace('{',' ',$seoit);
        $seoit = str_replace('}',' ',$seoit);
        $seoit = str_replace('[',' ',$seoit);
        $seoit = str_replace(']',' ',$seoit);
        $seoit = str_replace('-',' ',$seoit);
        $seoit = str_replace(' & ',' ',$seoit);
        $seoit = str_replace('"',' ',$seoit);
        $seoit = str_replace('.',' ',$seoit);
        $seoit = str_replace('\'',' ',$seoit);
        $seoit = str_replace(',',' ',$seoit);
        $seoit = str_replace(' ','-',$seoit);
        $seoit = str_replace(' ','-',$seoit);
        $seoit = str_replace(' ','-',$seoit);
        $seoit = str_replace(':','',$seoit);
        $seoit = str_replace('#','',$seoit);
        $seoit = str_replace('(','',$seoit);
        $seoit = str_replace(')','',$seoit);
        $seoit = str_replace('---','-',$seoit);
        $seoit = str_replace('--','-',$seoit);
        $seoit = str_replace('ž','z',$seoit);
        $seoit = str_replace('Ž','Z',$seoit);
        $seoit = str_replace('č','c',$seoit);
        $seoit = str_replace('Č','C',$seoit);
        $seoit = str_replace('ą','a',$seoit);
        $seoit = str_replace('Ą','A',$seoit);
        $seoit = str_replace('&#281','e',$seoit);
        $seoit = str_replace('ż','E',$seoit);
        $seoit = str_replace('ė','e',$seoit);
        $seoit = str_replace('Ė','E',$seoit);
        $seoit = str_replace('į','i',$seoit);
        $seoit = str_replace('Į','I',$seoit);
        $seoit = str_replace('š','s',$seoit);
        $seoit = str_replace('Š','S',$seoit);
        $seoit = str_replace('&#371','u',$seoit);
        $seoit = str_replace('Ų','U',$seoit);
        $seoit = str_replace('ū','u',$seoit);
        $seoit = str_replace('Ū','U',$seoit);
        $seoit = str_replace('&39;','-',$seoit);
        $seoit = strtolower($seoit);
        return $seoit;
    }

    2. Tuomet į .htacces failiuką įrašote šią eilutę:

    Code:
    RewriteRule ^naujiena,(.*),([0-9]*)$ news.php?readmore=$2 [L]

    3. Trečias žingsnis, einame į mūsų dizaino theme.php failą, susirandame naujienų funkcija (render_news) ir kur jums patogiau, parašote šia eilutę:

    Code:
    <a href="'.BASEDIR.'naujiena,'.seoname($info['news_subject']).','.$info['news_id'].'">Skaityti</a>


    Tarkim:

    Code:
    function render_news($subject, $news, $info) {

        echo "<table cellpadding='0' cellspacing='0' width='100%'>\n<tr>\n";
        echo "<td class='capmain'>".$subject."</td>\n";
        echo "</tr>\n</table>\n";
        echo "<table width='100%' cellpadding='0' cellspacing='0' class='spacer'>\n<tr>\n";
        echo "<td class='main-body>".$news."</td>\n";
        echo "</tr>\n<tr>\n";
        echo "<td><a href="'.BASEDIR.'naujiena,'.seoname($info['news_subject']).','.$info['news_id'].'">Skaityti</a></td>\n";
        echo "</tr>\n</table>\n";

    }

    Rezultatas: http://svetaine.lt/naujiena,naujienos-pavadinimas,1

    Visas kodas .htaccess failiuke turėtų atrodyti taip:

    Code:
    RewriteEngine on
    RewriteRule ^pagrindinis/$ index.php [N]
    RewriteRule ^naujiena,(.*),([0-9]*)$ news.php?readmore=$2 [L]

    Pamoką kūrė: desco.lt administratorius Dariukas
    2013-06-10 00:18
    Find Quote

    Member


    ***
    55

    0
    Post: #2
     
    Kažkodėl man toje eilutėje rodo, kad klaida

    [geshi=php]function render_news($subject, $news, $info) {

    echo "<div class='npanel'><div style='float: left;'>$subject</div><div class='npanel-info'>Paskelbė: ".profile_link($info['user_id'], $info['user_name'], $info['user_status'])." ? Komentarų: ".$info['news_comments']." ? <a href='".BASEDIR."news.php?readmore=".$info['news_id']."'>Skaityti plačiau</a></div></div>";
    echo "<div class='cpanel-bod'>";
    echo "<td><a href="'.BASEDIR.'naujiena,'.seoname($info['news_subject']).','.$info['news_id'].'">Skaityti</a></td>\n";
    echo $news;
    echo "</div>";

    }[/geshi]
    2013-06-10 14:28
    Find Quote

    Senior Member


    ****
    291

    0
    Post: #3
     
    kokią klaida? nukopijuok.
    2013-06-10 14:32
    Find Quote

    Junior Member


    **
    45

    0
    Post: #4
     
    Dėl dvigubų kabučių spėju.
    2013-06-10 14:34
    Find Quote

    Member


    ***
    55

    0
    Post: #5
     
    Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting.
    Šitoje eilutėje
    echo "<td><a href="'.BASEDIR.'naujiena,'.seoname($info['news_subject']).','.$info['news_id'].'">Skaityti</a></td>\n";
    2013-06-10 14:34
    Find Quote

    Senior Member


    ****
    291

    0
    Post: #6
     
    Pabandyk taip
    [geshi=php]
    echo "<td><a href="'.BASEDIR.'naujiena,".seoname($info['news_subject']).",'.$info['news_id'].'">Skaityti</a></td>\n";
    [/geshi]
    2013-06-10 14:36
    Find Quote

    Member


    ***
    55

    0
    Post: #7
     
    Tas pats
    2013-06-10 14:39
    Find Quote

    Member


    ***
    87

    0
    Post: #8
     
    Code:
    echo "<td><a href='".BASEDIR."naujiena,".seoname($info['news_subject']).",".$info['news_id']."'>Skaityti</a></td>\n";
    2013-06-10 14:43
    Find Quote

    print ('Python coder')


    ***
    127

    0
    Post: #9
     
    Viskas ok. Dėkui.
    2013-06-10 14:45
    Find Quote

    Member


    ***
    55

    0
    Post: #10
     
    Klaidos neberodo, bet adresas toks pat news.php?readmore=6, dizaine problemos galbūt?
    2013-06-10 14:46
    Find Quote

    Member


    ***
    87

    0
    Post: #11
     
    Quote:Andrius parašė:

    Klaidos neberodo, bet adresas toks pat news.php?readmore=6, dizaine problemos galbūt?

    Bandyk pagrindiniame puslapyje paspausti F5, nes kaip ir niekur daugiau nereik rašyt.
    2013-06-10 14:48
    Find Quote

    Member


    ***
    55

    0
    Post: #12
     
    Veikia, bet dabar yra 2 skaityti gal gali pataisyt pirmą eilutę, kad būtų su seo?

    [geshi=php]echo "<div class='npanel'><div style='float: left;'>$subject</div><div class='npanel-info'>Paskelbė: ".profile_link($info['user_id'], $info['user_name'], $info['user_status'])." ? Komentarų: ".$info['news_comments']." ? <a href='".BASEDIR."news.php?readmore=".$info['news_id']."'>Skaityti plačiau</a></div></div>";
    echo "<td><a href='".BASEDIR."naujiena,".seoname($info['news_subject']).",".$info['news_id']."'>Skaityti</a></td>\n";[/geshi]
    2013-06-10 14:51
    Find Quote

    Member


    ***
    87

    0
    Post: #13
     
    Code:
    echo "<div class='npanel'><div style='float: left;'>$subject</div><div class='npanel-info'>Paskelbė: ".profile_link($info['user_id'], $info['user_name'], $info['user_status'])." ? Komentarų: ".$info['news_comments']." ? <a href='".BASEDIR."naujiena,".seoname($info['news_subject']).",".$info['news_id']."'>Skaityti plačiau</a></div></div>";
    echo "<td><a href='".BASEDIR."naujiena,".seoname($info['news_subject']).",".$info['news_id']."'>Skaityti</a></td>\n";
    2013-06-10 14:54
    Find Quote

    Member


    ***
    55

    0
    Post: #14
     
    Dėkui
    2013-06-10 15:01
    Find Quote

    Member


    ***
    135

    0
    Post: #15
     
    Taip pat galite pasidaryti ir profilio trumpinima. Su tokiu kodu:
    [geshi=xml]RewriteRule ^narys-(.*)-([0-9]+)$ profile.php?lookup=$2 [N][/geshi]

    Cia bus http://www.vardas.lt/narys-nario vardas-nario id

    PVZ:
    http://www.vardas.lt/narys-julius-1

    Jei reiks pagalbos su nukreipimu visada padesiu :)
    2013-06-10 17:23
    Find Quote

    Senior Member


    ****
    291

    0
    Post: #16
     
    neįsižeisk, bet tu pats ne ką daugiau moki.
    2013-06-10 17:50
    Find Quote

    Member


    ***
    135

    0
    Post: #17
     
    Quote:DomantasN parašė:

    neįsižeisk, bet tu pats ne ką daugiau moki.

    As ir nesakau kad moku Smile Sakau jeigu reikes pvz forume ten kur nick yra nukreipti i ta linka, tai galiu padeti Smile As apie ta kalbu.
    2013-06-10 17:59
    Find Quote


    Possibly Related Threads...
    Thread: Author Replies Views: Last Post
      Kaip apsaugoti atvirus kodo failus [PAMOKA] MariukasR 5 4116 2013-05-23 19:35
    Last Post: Generic-


    About DESCO

    Mes esame ne komercinis projektas, norime, jog Lietuvos jaunimas vis sparčiau brautųsi į technologijų amžių. Negalima sėdėti vietoje, reikia kažką veikt, todėl mūsų projektas tam puikiai tinka. Galima pas mus išmokt kažko naujo, taip pat nepamirškite, kad ir jūs galite mokyti kitus! Žinių dalinimasis geriną lietuvių mentalitetą, todėl nesmerk kito, o pamokyk!