Rezultate 1 la 9 din 9

Subiect: htacces rescriere cu litere mici si excludere caractere speciale

  1. #1
    Avatarul lui evolution
    evolution este deconectat Membru SeoPedia
    Reputatie:
    37
    Data înscrierii
    29th October 2006
    Locaţie
    Bucuresti
    Posturi
    997
    Putere Rep
    37


    Implicit htacces rescriere cu litere mici si excludere caractere speciale

    Am nume de produse care apar in url
    In URL as vrea sa scot automat toate caracterele speciale,sa inlocuiesc pauzele cu - si sa fac toate caracterele cu litere mici.


    ex titlu in baza de date si afisat in continut:
    1. Maria & Ion au 3 mere
    2. John's car is working with gas/petrol

    ex titlu care vreu sa il afisez in URL:
    id_articol/maria-ion-au-3-mere.html
    id_articol/john-s-car-is-working-with-gas-petrol.html

    Am vazut ceva reguli de htacces care fac asta. Ar trebui sa prelucrez aceste titluri si in php ca sa scot/inlocuiesc caracterele sau e suficient sa pun doar formula din htacces ?

    Multumesc

  2. #2
    Avatarul lui Andrei Luca
    Andrei Luca este deconectat Ambasador
    Reputatie:
    40
    Data înscrierii
    2nd April 2007
    Locaţie
    Iași
    Posturi
    522
    Putere Rep
    40


    Implicit

    Nu se poate fara PHP.
    Trebuie sa ai ceva de genul: index.php?id_articol=maria-ion-au-3-mere

  3. #3
    Avatarul lui alecs
    alecs este deconectat Membru SeoPedia
    Reputatie:
    35
    Data înscrierii
    5th February 2007
    Locaţie
    Timisoara
    Vârstă
    36
    Posturi
    490
    Putere Rep
    35


    Implicit

    Cod:
    // permalink generator
    function generatePermalink($string){
    	$string = strtolower($string);
    	$string = str_replace('ă','a',$string);
    	$string = str_replace('â','a',$string);
    	$string = str_replace('î','i',$string);
    	$string = str_replace('ş','s',$string);
    	$string = str_replace('ţ','t',$string);
    	$string = str_replace(' ','-',$string);
    	$string = preg_replace('/[^a-zA-Z0-9-]{1}/','',$string);
    	$string = preg_replace('/[-]{2,}/','-',$string);
    	return $string;
    }
    Faci inca o coloana in tabelul de produse pentru permalink-ul generat. In plus trebuie sa te asiguri ca toate acestea ies unice. De exemplu generatePermalink("Ion & Maria") == generatePermalink("Ion, Maria").
    Am lista de directoare românești gratuite și o unealtă pentru căutare de utilizatori în rețelele sociale românești.

  4. #4
    Avatarul lui loco
    loco este deconectat Membru SeoPedia
    Reputatie:
    31
    Data înscrierii
    6th February 2008
    Posturi
    145
    Putere Rep
    31


    Implicit

    Pai a spus ceva de genu "id_articol/john-s-car-is-working-with-gas-petrol.html", adica id_articol este trimis separat. Deci nu e o problema daca genereaza acelasi string pentru ca se trimite si id-ul. (asa e si mai sanatos, mai ales daca vrei o baza de date optimizata)
    Citat Postat în original de alecs Vezi Post
    $string = preg_replace('/[-]{2,}/','-',$string);
    Very nice! De ma gandeam la asa ceva cand am implementat sistemul de parmalinks nu aveam carnati "--" in link
    Ultima modificare făcută de loco; 2nd February 2009 la 01:59.

  5. #5
    Avatarul lui haos
    haos este deconectat Ambasador
    Reputatie:
    60
    Data înscrierii
    19th February 2008
    Locaţie
    Craiova
    Posturi
    2.239
    Putere Rep
    60


    Implicit

    Citat Postat în original de alecs Vezi Post
    $string = preg_replace('/[^a-zA-Z0-9-]{1}/','',$string);
    $string = preg_replace('/[-]{2,}/','-',$string);
    Astea-s de oscar
    Citeste primul meu curs SEO - principii de baza. Vezi oferta mea de advertoriale PR5.

  6. #6
    Avatarul lui alecs
    alecs este deconectat Membru SeoPedia
    Reputatie:
    35
    Data înscrierii
    5th February 2007
    Locaţie
    Timisoara
    Vârstă
    36
    Posturi
    490
    Putere Rep
    35


    Implicit

    Citat Postat în original de loco Vezi Post
    Pai a spus ceva de genu "id_articol/john-s-car-is-working-with-gas-petrol.html", adica id_articol este trimis separat. Deci nu e o problema daca genereaza acelasi string pentru ca se trimite si id-ul. (asa e si mai sanatos, mai ales daca vrei o baza de date optimizata)
    Nu observasem. Asta e solutia mai simpla. Dar insist si la o validare a caracterelor de dupa id, din php. Altfel poate avea pagini identice pentru URL-uri diferite:
    "35/john-s-car-is-working-with-gas-petrol.html"
    "35/my-website-sucks.html"

    Legat de codul meu, mai e necesar un trim la inceputul functiei. In contextul in care o folosesc mereu primea string-ul trim-uit. Si la regex partea A-Z este redundanta, facandu-se lowercase inainte.
    Am lista de directoare românești gratuite și o unealtă pentru căutare de utilizatori în rețelele sociale românești.

  7. #7
    Avatarul lui loco
    loco este deconectat Membru SeoPedia
    Reputatie:
    31
    Data înscrierii
    6th February 2008
    Posturi
    145
    Putere Rep
    31


    Implicit

    De asemenea recomand
    Cod:
    $string = str_replace(array('&',' ', ','),'-',$string);
    In loc de
    Cod:
    $string = str_replace(' ','-',$string);

    Pentru ca exista probabilitatea ca un titlu sa fie de forma "unu&doi" (chiar daca in mod normal se pune spatiu intre &, dar nu se stie..) sau in cazul virgulei.. Sunt oameni care nu stiu sa puna un spatiu dupa virgula.

  8. #8
    Avatarul lui alecs
    alecs este deconectat Membru SeoPedia
    Reputatie:
    35
    Data înscrierii
    5th February 2007
    Locaţie
    Timisoara
    Vârstă
    36
    Posturi
    490
    Putere Rep
    35


    Implicit

    Revin dupa cateva luni... se pare ca nu am testat prea bine codul postat mai sus.
    Prin urmare, urmatorul cod in PHP:
    Cod:
    function generatePermalink($string) {
    	$transliteration = array ("ă"=>"a", 'â'=>'a', 'î'=>'i', 'ș'=>'s', 'ț'=>'t', "Ă"=>"A", 'Â'=>'A', 'Î'=>'I', 'Ș'=>'S', 'Ț'=>'T');
    	$string = strtr($string, $transliteration);
    	$string = preg_replace('/[^a-zA-Z0-9 -]{1}/', ' ', $string);
    	$string = trim($string);
    	$string = str_replace(' ', '-', $string);
    	$string = preg_replace('/[-]{2,}/', '-', $string);
    	$string = strtolower($string);
    	return  $string;
    }
    va transforma
    Cod:
     îNtr-o_țelinĂ    urâtă,bătrână&rOșie  *^2_4>12>
    in
    Cod:
    intr-o-telina-urata-batrana-rosie-2-4-12
    strtolower folosit anterior avea o problema la facut ă din Ă. Sper sa fie ok de acum incolo .
    Am lista de directoare românești gratuite și o unealtă pentru căutare de utilizatori în rețelele sociale românești.

  9. #9
    Avatarul lui Federals
    Federals este deconectat Ambasador
    Reputatie:
    32
    Data înscrierii
    29th November 2007
    Locaţie
    Bucuresti
    Posturi
    612
    Putere Rep
    32


    Implicit

    Inscriere la thread.

Informații subiect

Utilizatori care navighează în acest subiect

Momentan este/sunt 1 utilizator(i) care navighează în acest subiect. (0 membrii și 1 vizitatori)

Thread-uri Similare

  1. Cautari Speciale In Google
    De Razvan Pop în forumul Google
    Răspunsuri: 33
    Ultimul Post: 26th March 2016, 00:19
  2. Cuvinte mai mici de 4 litere in titlu
    De vivaldi în forumul Discutii generale privind optimizarea si motoarele de cautare
    Răspunsuri: 1
    Ultimul Post: 9th October 2009, 13:43
  3. Excludere domenii .com din google.ro ?
    De doro în forumul Google
    Răspunsuri: 10
    Ultimul Post: 5th May 2008, 22:27
  4. Rescriere posturi forum din RO in EN
    De stefan în forumul Servicii web / Jobs
    Răspunsuri: 2
    Ultimul Post: 13th November 2007, 18:20
  5. Cautari Speciale In Yahoo
    De Razvan Pop în forumul Yahoo!
    Răspunsuri: 8
    Ultimul Post: 26th October 2007, 11:55

Permisiuni postare

  • Nu puteţi posta subiecte noi.
  • Nu puteţi răspunde la subiecte
  • Nu puteţi adăuga ataşamente
  • Nu puteţi modifica posturile proprii
  •