Sunteți pe pagina 1din 19

Tcnicas Avanzadas Web

Mdulo 4: Apache

Mdulo Cuarto Conceptos bsicos de Apache: mod_rewrite

1
Javier Infante Porro

Tcnicas Avanzadas Web

Modulo 4: Apache

Desarrollado inicialmente por Rob McCool (NCSA) Es desde 1 ! el ser"idor #eb $%%& m's utili(ado en )nternet* Es multiplata+orma (,ni-. Microso+t. No"ell) /a "ersin 0 de apache se ha reescrito completamente* Es e-tremadamente estable* Modulari(ado para e"itar mantener un cdi1o e-tremadamente comple2o 3 monol4tico* Es so+t#are libre aun5ue no 6&/
2
Javier Infante Porro

Tcnicas Avanzadas Web

Mdulo 4: Apache

Apache es un pro1rama modular 5ue permite ele1ir 5ue +uncionalidades se inclu3en* /as +uncionalidades adicionales se inclu3en mediante la seleccin de mdulos* /os mdulos pueden seleccionarse:

Compilados de manera est'tica (httpd) Como 7b2etos Din'micos Compartidos (DS7)

3
Javier Infante Porro

Tcnicas Avanzadas Web

Mdulo 0: 8a"ascript

Compilados de manera est'tica

)ncluidos en la distribucin de apache

Apache 1*9

En tiempo de compilacin en el archi"o:


<fuente_apache>/src/Configuration.tmpl

En tiempo de compilacin en ./configure


./configure --enable-module=<modulo>

4
Javier Infante Porro

Tcnicas Avanzadas Web

Mdulo 0: 8a"ascript

Mdulos car1ados e-ternamente: Apache permite car1ar mdulos independientes al archi"o binario httpd* Es posible 1racias al mdulo mod_so. 5ue debe compilarse est'ticamente en el n:cleo de Apache 3 a la herramienta apxs (A&ache e;tenSion)* Apache necesita ser compilado pre"iamente para poder utili(ar la herramienta apxs* &ara usa este mecanismo el sistema tambi<n debe soportar DS7*
5
Javier Infante Porro

Tcnicas Avanzadas Web

Mdulo 4: Apache

/a con+i1uracin de Apache se reali(a a tra"<s de "arios +icheros de te-to 5ue son autoe-plicati"os 3 sencillos de con+i1urar El archi"o de con+i1uracin se compone de directrices. 5ue ser'n utili(adas en el conte-to correspondiente* El conte-to indica en 5u< parte del ser"idor se puede usar una directi"a*

6
Javier Infante Porro

Tcnicas Avanzadas Web

Mdulo 4: Apache

Conte-to de Con+i1uracin de Ser"idor &ueden aparecer en cual5uier +ichero. pero no dentro de cual5uier contenedor o archi"o de con+i1uracin por directorio*

E2emplo:
ServerRoot C:/AppServ/Apoache Port 80

7
Javier Infante Porro

Tcnicas Avanzadas Web

Mudlo 4: Apache

Conte-to de Directorio o Contenedores %ipos de contenedores:


<VirtualHost> <Directory> <Files> <Limit>

E2emplo:
<Files ~ "^\.ht"> Order allow,deny Deny from all Satisfy All </Files>

8
Javier Infante Porro

Tcnicas Avanzadas Web

Mdulo 4: Apache

Conte-to de *htaccess Es posible incluir directrices dentro de los +icheros de con+i1uracin por directorio (.htaccess)

Se puede cambiar el nombre del archi"o a tra"<s de la directi"a AccessFileName

Es necesario 5ue est< acti"ada la opcin de sobreescritura (AllowOverride) para 5ue se procesen esas directi"as*

9
Javier Infante Porro

Tcnicas Avanzadas Web

Mdulo 4: Apache

Conte-to de *htaccess =alores de la directi"a AllowOverride:


None: Desabilita el uso de *htaccess AuthConfig: ,so de directi"as de autenticacin FileInfo: ,so de directi"as de control de tipos de documentos Indexes: El uso de directi"as de control de inde-acin Limit: El uso de directi"as de control de acceso Options: El uso de directi"as de caracter4sticas de directorio All: Se permite usar todas las directi"as 10 aplicables* Javier Infante Porro

Tcnicas Avanzadas Web

Mdulo 4: Apache

Conte-to de *htaccess En 1eneral los archi"os *htaccess no se deben usar nunca. a menos 5ue no se ten1a acceso al archi"o de con+i1uracin del ser"idor (E2: )S&) Se debe usar el contenedor <Directory> Ra(ones:

E+iciencia: Apache debe buscar +icheros *htaccess por todo el arbol de directorios. en busca de herencias Se1uridad: Se permite a los usuarios hacer cambios sobre las directi"as del ser"idor* Cambios sobre los 5ue no se tiene control*
11
Javier Infante Porro

Tcnicas Avanzadas Web

Mdulo 4: Apache

Conte-to de *htaccess Ambos e2emplo son e5ui"alentes* Sin embar1o es m's recomendable usar el primero:

httpd.conf
<Directory /var/www> AddType text/example .exm </Directory>

.htaccess (en >"ar>###>)


AddType text/example .exm

Adem's ser4a necesario 5ue el directorio >"ar>### o al1:n padre inclu3ese (como m4nimo):
<Directory /var/www> AllowOverride FileInfo </Directory> 12
Javier Infante Porro

Tcnicas Avanzadas Web

Mdulo 4: Apache

E2emplo de mdulo e-terno: mod_rewrite

El modulo de re?escritura en apache. permite a Apache reescribir una ,R/ en base a unas re1las determinadas. antes de procesar la peticion*

URL Peticioo: http://www.server.com/productos/10.html URL Procesada: http://www.server.com/productos.php?id=10

)nstalacion

Editar el +ichero de con+i1uracin de apache httpd*con+:


LoadModule rewrite_module modules/mod_rewrite.so
Javier Infante Porro

13

Tcnicas Avanzadas Web

Modulo 4: Apache

Directi"as de con+i1uracin:

ewrite!n"ine on @ o++
Acti"a > desacti"a el motor de re?escritura en el contenedor donde es indicado*

ewrite #$e &atrn Re?escritura


Re1la 5ue indica al apache en +uncin a 5ue patrn de ,R/. tiene 5ue reescribir la peticin* Soporta e-presiones re1ulares*

ewrite%ond CadenaE"aluada &atron


En +uncin a su resultado (true@+alse). e2ecutar' la re1la 5ue le suceda* /a cadena e"aluada puede tomar su "alor de determinadas "ariables de entorno a las 5ue apache nos da acceso*
14
Javier Infante Porro

Tcnicas Avanzadas Web

Mdulo 4: Apache

=ariables de Apache m's importantes**


REA,ES%B,R) $%%&B,SERBA6EN% $%%&BRECERER $%%&BC77D)E $%%&BC7REARDED $%%&B$7S% $%%&BACCE&% REM7%EBADDR A,ERFBS%R)N6

15
Javier Infante Porro

Tcnicas Avanzadas Web

Mdulo 4: Apache

Modi+icadores

+la1s 5ue se insertan al +inal de un Re#riteRule. para modi+icar su comportamiento:

G&'AH: Si est' presente. se mantendr'n los "alroes 5uer3Bstrin1 5ue Itrai1aJ la peticin. aKadiendose los 5ue indi5uemos (o no). en nuestra re1la* G(H: &arar' el proceso de reescritura despues de aplicar la re1la donde se encuentre* GT)a**$ication+*d,H: +uer(a a modi+icar el mime? t3pe de la peticin cursada* G!)variab$e-va$orH: Setea una "ariable de entorno. accesible m's tarde desde la p'1ina din'mica a la 5ue se est< accediendo*
16
Javier Infante Porro

Tcnicas Avanzadas Web

Mdulo 4: Apache*

Modo de uso:

/as directi"as modBre#rite. deber'n ir incluidas bien en un conte-to de directorio. o bien en un +ichero *htaccess* Es importante tener en cuenta. 5ue est's directi"as. tendr'n in+luencia en el directorio donde se sit:e el *htacces o al 5ue nos re+iramos dentro del conte-to directorio del httpd*con+. as4 como en sus directorio hi2os. si <stos no tu"ieran otras directi"as modBre#rite*

17
Javier Infante Porro

Tcnicas Avanzadas Web

Mdulo 4: Apache

E2emplo de uso:
# Si el REQUEST_URI empieza con /es/ o /en/ o /ru/ RewriteCond %{REQUEST_URI} /(es|en|ru)/.* #Re-escribo la url por con la variable de idioma pasada como argumento: RewriteRule /(.*)/(.*) /$2?idioma=$1 [QSA]

18
Javier Infante Porro

Tcnicas Avanzadas Web

Mdulo 4: Apache

Enlaces interesantes

http:>>###*1oo1le*com

- http://httpd.apache.org/docs/1.3/mod/mod_rewrite.html - http://httpd.apache.org/docs/misc/rewriteguide.html

http:>>###.irontec*com>L2abi>mod4Bapache*pd+

19
Javier Infante Porro

S-ar putea să vă placă și