Pagina 1 din 2 12 UltimulUltimul
Rezultate 1 la 10 din 18

Subiect: htaccess

  1. #1
    Avatarul lui Mascka
    Mascka este deconectat Membru SeoPedia
    Reputatie:
    36
    Data înscrierii
    31st May 2006
    Locaţie
    Braila
    Vârstă
    46
    Posturi
    496
    Putere Rep
    36


    Implicit htaccess

    am aceste 2 reguli:
    RewriteRule ^([^/]+)/$ /index.php?os=$1
    si
    RewriteRule ^([a-z]{1,2})/([^/]+)/$ /index.php?lng=$1&os=$2

    cum sa fac sa le unesc in una singura?
    am cateva zeci de reguli de primul gen si nu as vrea ca la fiecare sa o adaug pe a doua..

    sa explic si altfel..
    imi trebuie o regula care sa functioneze si daca exista lng= in url si daca nu exista..


    merci anticipat

  2. #2
    Avatarul lui Cristi G
    Cristi G este deconectat Membru SeoPedia
    Reputatie:
    47
    Data înscrierii
    16th April 2009
    Locaţie
    Iasi
    Vârstă
    32
    Posturi
    1.664
    Putere Rep
    47


    Implicit

    Nu cred ca se poate. Dar cu ce te deranjeaza daca sunt 2 si nu 1?
    Imi ocup timpul uneori cu pariuri sportive si fac si web development WordPress.

  3. #3
    Avatarul lui Mascka
    Mascka este deconectat Membru SeoPedia
    Reputatie:
    36
    Data înscrierii
    31st May 2006
    Locaţie
    Braila
    Vârstă
    46
    Posturi
    496
    Putere Rep
    36


    Implicit

    sunt deja 213 randuri in htaccess .. ar insemna sa le dublez.. si ma gandesc sa nu se incurce intre ele sa-mi dea dureri de cap

  4. #4
    Avatarul lui ant7
    ant7 este deconectat Membru SeoPedia
    Reputatie:
    27
    Data înscrierii
    10th September 2010
    Locaţie
    bucuresti / constanta
    Posturi
    91
    Putere Rep
    27


    1 out of 2 members found this post helpful.

    Implicit

    asa merge:
    Cod:
    RewriteRule ^(?:([a-z]{1,2})\/)?(?:([^\/]+)\/)?$ index.php?lng=$1&os=$2
    insa atunci cand 'lng' nu va fi prezent in url si vei avea 'os' format tot din una sau doua litere (la fel ca si 'lng') automat el va fi perceput ca si 'lng'. de aceea iti recomand marcarea foarte clara a limbilor posibile (banuiesc ca 'lng' la asta se refera). ceva in genul:
    Cod:
    RewriteRule ^(?:(en|ro|it|fr)\/)?(?:([^\/]+)\/)?$ index.php?lng=$1&os=$2

  5. #5
    Avatarul lui Mascka
    Mascka este deconectat Membru SeoPedia
    Reputatie:
    36
    Data înscrierii
    31st May 2006
    Locaţie
    Braila
    Vârstă
    46
    Posturi
    496
    Putere Rep
    36


    Implicit

    din pacate daca lipseste lng os va ramane cu $2 cand defapt lui ai trebuie $1...
    merci mult, cred ca pana la urma scriu cate o regula pt fiecare varianta

  6. #6
    Avatarul lui ant7
    ant7 este deconectat Membru SeoPedia
    Reputatie:
    27
    Data înscrierii
    10th September 2010
    Locaţie
    bucuresti / constanta
    Posturi
    91
    Putere Rep
    27


    Implicit

    ai testat? te asigur ca nu se intampla asa daca iei in calcul sfatul pe care ti l-am dat legat de 'lng'... ai codul mai sus.
    numai bine

  7. #7
    Avatarul lui Mascka
    Mascka este deconectat Membru SeoPedia
    Reputatie:
    36
    Data înscrierii
    31st May 2006
    Locaţie
    Braila
    Vârstă
    46
    Posturi
    496
    Putere Rep
    36


    Implicit

    da ant7.. am testat cu prescurtarile de limba, daca merg pe un link care nu are lng valuare lui os devine nulla. am sa mai incerc

    later edit:

    daca nu te retin prea mult.. poti sa-mi explici pe scurt codul: ^(?en|ro|it|fr)\/)?(?[^\/]+)\/)?$
    Ultima modificare făcută de Mascka; 22nd November 2010 la 17:22.

  8. #8
    Avatarul lui ant7
    ant7 este deconectat Membru SeoPedia
    Reputatie:
    27
    Data înscrierii
    10th September 2010
    Locaţie
    bucuresti / constanta
    Posturi
    91
    Putere Rep
    27


    1 out of 1 members found this post helpful.

    Implicit

    chiar acum am retestat si functioneaza corect...

    url-ul http://www.domeniu.ro/en/windows-xp/ imi returneaza la print_r($_GET): [lng] => en [os] => windows-xp
    url-ul http://www.domeniu.ro/windows-xp/ imi returneaza la print_r($_GET): [lng] => [os] => windows-xp

    explicatie regula pe scurt:
    ^ inceput de regula
    ?: dupa deschiderea primei paranteze ii spune interpretorului sa nu retina regula aflata in acea paranteza (ca si backreference)
    (ro|en|it|fr) - ro ori en ori it ori fr (aici regula va fi retinuta pentru ca se afla intr-o paranteza care nu mai are ?: la inceput)
    ? de dupa inchiderea parantezei inseamna ca regula continuta de aceasta poate exista sau nu (nu este obligatorie)

    a doua parte poate fi dedusa
    sper ca am putut sa-ti fiu de ajutor
    numai bine

    editat: poate ca ai o regula care o rescrie pe aceasta (spuneai ca ai 213 randuri in htaccess)... incearca s-o pui prima si sa-i adaugi flagul [L] pentru a obliga interpretorul sa se opreasca la prima potrivire. ceva in genul
    Cod:
    RewriteRule ^(?:(en|ro|it|fr)\/)?(?:([^\/]+)\/)?$ index.php?lng=$1&os=$2 [L]
    Ultima modificare făcută de ant7; 22nd November 2010 la 17:49.

  9. #9
    Avatarul lui Mascka
    Mascka este deconectat Membru SeoPedia
    Reputatie:
    36
    Data înscrierii
    31st May 2006
    Locaţie
    Braila
    Vârstă
    46
    Posturi
    496
    Putere Rep
    36


    Implicit

    da functioneaza.. dar problema e urmatoarea.. daca accesez domeniul direct ex: domeniu.ro/ se interfereaza cu regula asta si cere os.. automat rezulta 404 pt ca os este null..

    merci foarte mult de explicatie pentru cod..

  10. #10
    Avatarul lui ant7
    ant7 este deconectat Membru SeoPedia
    Reputatie:
    27
    Data înscrierii
    10th September 2010
    Locaţie
    bucuresti / constanta
    Posturi
    91
    Putere Rep
    27


    1 out of 1 members found this post helpful.

    Implicit

    Citat Postat în original de Mascka Vezi Post
    da functioneaza.. dar problema e urmatoarea.. daca accesez domeniul direct ex: domeniu.ro/ se interfereaza cu regula asta si cere os.. automat rezulta 404 pt ca os este null.
    nici os si nici lng nu este obligatorie... regula este valabila si functioneaza pentru:
    - domeniu.ro/
    - domeniu.ro/lng/
    - domeniu.ro/lng/os/
    - domeniu.ro/os/

    probabil de vina este alta regula. cred ca optim ar fi sa refaci regulile (deja sunt prea multe), pentru a nu avea surprize neplacute in viitor...

Pagina 1 din 2 12 UltimulUltimul

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. .htaccess
    De Buta Paul în forumul Server side
    Răspunsuri: 4
    Ultimul Post: 15th September 2010, 12:52
  2. .htaccess rewrite
    De Hobart în forumul Server side
    Răspunsuri: 2
    Ultimul Post: 22nd December 2009, 18:13
  3. 301 redirect .htaccess
    De meetzah în forumul Server side
    Răspunsuri: 10
    Ultimul Post: 27th December 2008, 10:01
  4. cum pun parola cu .htaccess
    De pts în forumul Server side
    Răspunsuri: 18
    Ultimul Post: 5th August 2008, 00:05
  5. mac OS htaccess
    De prodan_13 în forumul Server side
    Răspunsuri: 1
    Ultimul Post: 14th March 2007, 00:10

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
  •