Hacking and more...
HaCkinG CulT
Lista Forumurilor Pe Tematici
Hacking and more... | Reguli | Inregistrare | Login

POZE HACKING AND MORE...

Nu sunteti logat.
Nou pe simpatie:
crazygirl
Femeie
22 ani
Buzau
cauta Barbat
26 - 80 ani
Hacking and more... / n00bs / [tutorial]mod_rewrite Moderat de Shocker
Autor
Mesaj Pagini: 1
Y2K`
Elite Member

Din: 666
Inregistrat: acum 18 ani
Postari: 970
Deci, ce mai e şi mod_rewrite (botezat şi modrewrite sau mod rewrite) ăsta? Pe scurt: o metodă de a rescrie URL-uri on the fly.


    Motive pentru rescrierea URL-urilor sunt multe:


    *     uşurinţa de memorare a adreselor de către utilizatori
         

    *     estetica
         

    *     1337 ph33lin' :mrgreen:
         

    *     indexarea mai facilă de către motoarele de căutare (o mare vrăjeală, BTW, nu mai e cazul de ceva ani)
         

    *     poate şi altele
         



    Mulţi încearcă s-o facă, atraşi de ideea că asta o sa-i propulseze pe primele locuri în motoarele de căutare. Problema e că de obicei nu prea ştiu ce scriu/fac paste în .htaccess-ul ala "care este" (treaba le pare un fel de voodoo).


    Acest tutorial încearcă să-i lămurească pe cei dispuşi să înveţe. Majoritatea informaţiei de aici provine chiar din manualul lui mod_rewrite.

    Încă ceva: nu veţi găsi aici copy'n paste ready code… Sorry, dar va trebui să vă folositi creierul pe care vi l-a lăsat statul :twisted: . Astea fiind spuse, să-i dăm drumul.


    Noţiuni de bază



    Cu mod_rewrite se pot face o groază de chestii, dar scopul nostru e să avem URL-uri sexy, nu? Pentru asta, trebuie stăpânite 4 directive de configurare pentru Apache, şi aşa-numitele Perl-compatible regular expressions (PCRE). Să le luăm pe rând.


    Directivele de configurare



    Fişierele de configurare pentru Apache sunt compuse din aşa-numitele directive. Acestea sunt nişte comenzi care pot avea unul sau mai mulţi parametri, şi fiecare modul încărcat adaugă setul propriu de directive la cel deja recunoscut de apache. Din ce ştie mod_rewrite, utile scopului nostru sunt următoarele directive:


    *     
              RewriteEngine: controlează dacă se face rescrierea URL-urilor, şi are un singur parametru care poate fi on sau off (evident că trebuie să fie on )
         

    *     
              RewriteBase: îi spune motorului de rewrite care este calea relativ la care face rescrierea; această cale este extrasă din URL, şi este adăugată la loc după ce au fost evaluate regulile de rescriere. Are un singur parametru, care e o care relativă la document root (de exemplu, site-ul ăsta are RewriteBase /~iacobs/)
         

    *     
             


                  RewriteCond: poate fi folosită pentru a condiţiona evaluarea directivei RewriteRule următoare. Are 3 parametri:
             

             

          o             valoarea care se testează (pe noi ne interesează numai %{REQUEST_FILENAME}, lista completă e dată in link-ul de mai sus)
                       

          o             testul propriu-zis, testele care ne interesează pe noi fiind -f şi -d
                       

          o             un flag opţional care poate fi NC(nocase) sau OR(ornext).
                       

                   
             


                  Practic, RewriteCond ne interesează numai pentru a verifica dacă adresa cerută e un fişier (-f) sau director (-d) pe disc, caz în care nu mai efectuăm rescrierea URL-ului. De obicei, partea de RewriteCond apare pe la început, şi conţine un

Code:

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*$ - [L]

* RewriteRule: cea mai importantă directivă, e cea care face rescrierea propriu-zisă. Are 3 parametri, ca şi RewriteCond:
             

          o             URL-ul de rescris, relativ la RewriteBase (PCRE)
                       

          o             adresa cu care să-l înlocuiască
                       

          o             flag-uri
                       

                   
             


                  De toate astea mă voi ocupa mai pe larg în continuare, când voi vorbi despre…
             

         



    Regular Expressions



    Şi am ajuns la partea cea mai importantă, expresiile regulate sau PCRE. O să mă ocup de ele cât mai concis cu putinţă (pe tema asta s-au scris cărţi întregi). So:


    Operatorii cei mai importanţi



    *     
              (): grupare; pe scurt, când expresia dintre paranteze selectează un text, acesta este păstrat într-o variabilă:
             

          o             
                            $1 pentru prima paranteză,
                       

          o             
                            $2 pentru a 2-a,
                       

          o             â€¦
                       

                   
             


                  ordinea variabilelor e dată de ordinea deschiderii parantezelor, deci (expr1(expr2)) va pune în $1 textul selectat de paranteza din exterior şi în $2 pe cel selectat de paranteza din interior.
             

         

    *     
              []: clasă de caractere; poate să conţină o listă de caractere gen [abc123,>] sau un interval, ca [a-z0-9], acestea putând fi combinate între ele, ca în [a-zA-Z0-9,:].
             


                  Funcţionalitate: selectează oricare dintre caracterele din listă - ultimul exemplu o sa selecteze orice literă mică sau mare, cifră, virgulă sau 2 puncte, lucru folositor atunci când vrem să selectăm exact ce date intră în scripturi (de exemplu, dacă ştim că un ID trebuie să fie numeric, folosim [0-9] şi eliminăm datele aiurea încă înainte să ajungă la script).
             

             


                  Pentru a nega selecţia, se pune ^ la începutul listei.
             

         

    *     : escape; îi spune parser-ului de PCRE să trateze următorul caracter ca pe unul normal, permiţând să se selecteze şi ()[]. etc.
         

    *     
              . (punct): selectează orice caracter
         

    *     
              ^: selectează începutul de rând
         

    *     
              $: selectează sfârşitul de rând
         

    *     
              |: alternare, abc|def selectează abc sau def
         



    Cuantificatori



    Ne permit să specificăm de câte ori are voie să ruleze (selecteze caractere) o expresie.


    *     
              *: selectează de 0 sau mai multe ori; ex: .* găseşte orice text de orice lungime, inclusiv textul nul
         

    *     
              +: selectează de 1 sau mai multe ori; ex: .+ găseşte orice text de cel puţin un caracter lungime
         

    *     
              ?: selectează de 0 sau 1 ori; ex: .? găseşte orice text de cel mult un caracter lungime
         

    *     
              {n}: selectează de exact n ori; ex: a{3} găseşte aaa
         

    *     
              {m,n}: selectează între m şi n ori; ex: a{1,3} găseşte a, aa, aaa; selecţia încearcă întotdeauna să găsească cel mai lung text posibil
         

    *     
              {n,}: selectează de cel puţin n ori; ex: a{3,} găseşte orice înşiruire de a mai lungă de 3 caractere.

EXEMPLE

    Din exemple se învaţă cel mai bine:

Code:

RewriteRule ^pages/(home|about).html$ index.php?page=$1 [L]

Explicaţii: atunci când cineva cere


   


    serverul va afişa pagina


   


    Un exemplu mai complex:

Code:

RewriteRule ^magazin/raft([0-9]+)/produs([0-9]+).html$ shop.php?cat=$1&prod=$2 [L]

Explicaţii: atunci când cineva cere


    http://www/example.com/raft20/produs5.html,


    va primi


   


    OK, vă ajunge pentru azi, dragii moşului! La muncă!


SURSA

Modificat de Shocker (acum 17 ani)


pus acum 18 ani
   
Yakushiji
Grand Master

Inregistrat: acum 18 ani
Postari: 389
gg mha

_______________________________________


pus acum 18 ani
   
FrEeBoY
Elite Member

Din: ALKATRAZ
Inregistrat: acum 17 ani
Postari: 596
thx,sa traiesti!    

_______________________________________

cui nu ii place site u sa mi dea un pm si sa zica ce nu ii place si voi incerca sa modific =>

pus acum 17 ani
   
Zero_Cool
Pe lista neagra

Inregistrat: acum 17 ani
Postari: 796
alt tutorial furat fara credite puse ?    puteam sa jur ca l-am mai vazut pe 4-5 siteuri

pus acum 17 ani
   
OSHO
Elite Member

Din: Cluj
Inregistrat: acum 18 ani
Postari: 2069

Zero_Cool a scris:

alt tutorial furat fara credite puse ?    puteam sa jur ca l-am mai vazut pe 4-5 siteuri


Partea care mi se pare cea mai frustranta (pe langa lipsa creditelor) e sa vad tutoriale postate de oameni care nu au habar despre ce se intampla acolo... experti in copy/paste


_______________________________________

IPFind: IP Finder and browser revealer
SkullBox: IT pentru incepatori
_______________________________________

pus acum 17 ani
   
Pagini: 1  

Mergi la