Tabla de líderes
Contenido popular
Showing content with the highest reputation on 25/09/19 en Mensajes
-
La regla en el proceso penal es la libertad de quien se encuentra acusado de un delito, como derivación necesaria del principio de inocencia en materia penal, que establece la presunción de inocencia hasta tanto se pruebe la responsabilidad penal por un delito, mediante una sentencia condenatoria firme. Sin embargo, en determinados casos, si se presentan ciertas condiciones, resulta procedente la prisión preventiva del imputado, esto es, la detención cautelar, previa al dictado de una sentencia de condena. Actualmente, el criterio general que rige el instituto de la prisión preventiva, y que debe ser analizado en cada caso concreto, surge del Fallo Plenario de la Cámara Federal de Casación Penal “Díaz Bessone” de fecha 30 de octubre de 2008. Según dicho fallo, para que proceda la prisión preventiva debe verificarse peligro de fuga del imputado o riesgo de entorpecimiento de la investigación. El peligro de fuga y el intento de entorpecimiento de la investigación son peligros procesales que ponen en jaque los fines de un expediente penal, a saber: aplicación de la ley penal (la que no se puede aplicar si el imputado se da a la fuga, pues no existe la posibilidad de realizar el juicio en ausencia del acusado en la República Argentina) y la averiguación de la verdad (que se neutraliza si se entorpece la investigación). Para analizar la concurrencia de estos requisitos (peligro de fuga o riesgo de entorpecimiento de la investigación), se deben analizar las circunstancias concretas del caso, así como las condiciones personales del imputado. En ese sentido, se valora la calificación legal del hecho, la expectativa de pena, la existencia de condenas anteriores o declaraciones de reincidencia previas, la conducta del imputado durante el proceso, así como la predisposición de someterse al proceso y su comportamiento durante la investigación, entre otras pautas. También se aplican los artículos 317 al 319 del actual CPPN. La ley 27.063 (Texto Ordenado según las modificaciones introducidas mediante las leyes números 27.272 y 27.482, Decreto PEN Nº 118/2019) consolida el criterio sentado en el plenario "Díaz Bessone" de la Cámara Federal de Casación Penal. Concretamente, se establecen pautas específicas para analizar si en el caso se verifica, o no, peligro de fuga y peligro de entorpecimiento de la investigación. El Código Procesal Penal Federal ya se encuentra vigente, y es de aplicación progresiva en el territorio de la República Argentina. Actualmente se está aplicando en las provincias de Salta y Jujuy y se extenderá a las restantes provincias de forma paulatina. Peligro de fuga. Para decidir acerca del peligro de fuga se deberán tener en cuenta, entre otras, las siguientes pautas: a. Arraigo, determinado por el domicilio, residencia habitual, asiento de la familia y de sus negocios o trabajo, y las facilidades para abandonar el país o permanecer oculto; b. Las circunstancias y naturaleza del hecho, la pena que se espera como resultado del procedimiento, la imposibilidad de condenación condicional, la constatación de detenciones previas, y la posibilidad de declaración de reincidencia por delitos dolosos; c. El comportamiento del imputado durante el procedimiento en cuestión, otro anterior o que se encuentre en trámite; en particular, si incurrió en rebeldía o si ocultó o proporcionó falsa información sobre su identidad o domicilio, en la medida en que cualquiera de estas circunstancias permitan presumir que no se someterá a la persecución penal. Peligro de entorpecimiento. Para decidir acerca del peligro de entorpecimiento para la averiguación de la verdad, se deberá tener en cuenta la existencia de indicios que justifiquen la grave sospecha de que el imputado: a. Destruirá, modificará, ocultará, suprimirá o falsificará elementos de prueba; b. Intentará asegurar el provecho del delito o la continuidad de su ejecución; c. Hostigará o amenazará a la víctima o a testigos; d. Influirá para que testigos o peritos informen falsamente o se comporten de manera desleal o reticente; e. Inducirá o determinará a otros a realizar tales comportamientos, aunque no los realizaren. Límite de la prisión preventiva. La prisión preventiva cesará: a. Si el imputado hubiere cumplido en prisión preventiva la pena solicitada por el representante del MINISTERIO PÚBLICO FISCAL; b. Si el imputado hubiere agotado en prisión preventiva un tiempo igual al de la pena impuesta por la sentencia no firme; c. Si el imputado hubiere permanecido en prisión preventiva un tiempo que, de haber existido condena, le habría permitido solicitar la libertad condicional o la libertad asistida. No podrá imponerse nuevamente la prisión preventiva en el mismo proceso si una anterior hubiese cesado por cualquiera de las razones enunciadas precedentemente; ello sin perjuicio de las facultades para hacer comparecer al imputado a los actos necesarios del proceso o de la aplicación de otras medidas de coerción. ARTÍCULO 225.- Incumplimiento. En caso de incumplimiento injustificado de las obligaciones impuestas al imputado, el juez, a pedido del representante del MINISTERIO PÚBLICO FISCAL o del querellante, podrá sustituirlas o añadir nuevas, sin perjuicio de ordenar la ejecución de la caución económica dada. También podrá imponer la prisión preventiva si el incumplimiento persistente permite presumir que el imputado no se someterá al procedimiento o continuará obstaculizándolo. ARTÍCULO 226.- Revocación o sustitución. El juez, de oficio o a petición del imputado o su defensa, dispondrá la revocación o sustitución de la medida de coerción que hubiere sido impuesta, cuando hayan desaparecido los presupuestos en que se hubiere fundado su imposición. La solicitud será resuelta en audiencia con presencia de las partes, en un plazo que nunca podrá ser mayor a SETENTA Y DOS (72) horas. La resolución que rechace el pedido será revisable dentro del plazo de VEINTICUATRO (24) horas. ARTÍCULO 227.- Demora respecto de medidas privativas de la libertad. Si se hubiera planteado la revisión de una medida cautelar privativa de libertad y el juez no resolviera dentro de los plazos establecidos en este Código, el imputado podrá urgir pronto despacho y, si dentro de las VEINTICUATRO (24) horas no obtuviese resolución, el juez incurrirá en falta grave y causal de mal desempeño. Restricciones a la libertad. Las medidas restrictivas de la libertad sólo podrán fundarse en la existencia de peligro real de fuga u obstaculización de la investigación. Nadie puede ser encarcelado sin que existan elementos de prueba suficientes para imputarle un delito reprimido con pena privativa de libertad. * Mariano Borinsky es Juez de la Cámara Federal de Casación Penal, Doctor en Derecho Penal y Presidente de la Comisión de Reforma del Código Penal. Por Mariano Borinsky 24 de septiembre de 20191 punto
-
Compilación de animaciones 3D creadas en Commodore Amiga.1 punto
-
En 1928, pleno año electoral que consagraría por 800 mil votos a la fórmula Hipólito Yrigoyen y Francisco Beiró, un grupo de taxistas se lamentaba por el poco trabajo que tenían y la dificultad de llegar a fin de mes. En una mesa del café La Montaña, de Rivadavia y Carrasco, se contaban las penas José García Gálvez, un español naturalizado argentino que había sido chofer de Jorge Newbery; Rogelio Fernández, futuro corredor de Turismo Carretera; Pedro Etchegaray, Manuel Pazos, Felipe Quintana, Antonio González y Lorenzo Porte. De ese cónclave tan porteño, salió la idea de adaptar sus coches taxímetros, esos Ford T, en un transporte de más de un pasajero. Lo llamaron el “auto-colectivo”. También se rescata una anécdota del historiador anarquista Diego Abad de Santillán, quien le sugirió a un gallego que la estaba pasando mal transformar su coche en un pequeño ómnibus. “¡Por diez centavos hasta Lacarra!”, voceaba. Desde 1921 funcionaban los ómnibus, que cubrían trayectos de media y larga distancia, y que competían con los taxis y aún con los tranvías. Las empresas tranviarias se dedicaron a perseguir a este nuevo medio de transporte, aunque no encontraron eco en todas las autoridades, incluida la del presidente Yrigoyen, quien defendió a los taxistas devenidos en colectiveros. Es que algunos de estos “auto-colectivo” solían hacer el mismo recorrido que los tranvías y hasta se le ponían adelante para poder sacarle pasajeros. Nace el colectivo Pero la historia del colectivo comenzó el lunes 24 de septiembre de ese año. Sin tener ningún tipo de autorización, y arriesgándose a multas y secuestros de vehículos, en un día lluvioso salieron a la caza de pasajeros. Lo primero que hicieron fue tapar la bandera característica del taxi, y escribieron con tiza en la carrocería el recorrido: Primera Junta – Lacarra, pasando por Plaza Flores. Se preocuparon por mantener un horario, y le cobraban los 10 o 20 centavos -según el destino- al pasajero al bajar. El diario La Nación informó dos días después que “los coches inician el recorrido a las 7 de la mañana, con intervalos de cuatro minutos, cargando solo cuatro pasajeros y uno más del lado del conductor. Este inusitado recurso de transporte económico, el taxiómnibus inaugurado ayer hoy se ampliará con otra línea”. Llegarían a tener una parada en la vereda misma de la Casa Rosada. Llevaban hasta cinco pasajeros: uno, en el asiento del acompañante: tres en el asiento trasero y otro en el asiento que se adaptaba en el baúl. ¿Con qué nombres el ingenio popular los bautizó? Vicente Gesualdo, en su Historia del Colectivo, enumeró “Taxi barato”; “Taxi del pueblo”; “Bufoso” (porque carga cinco y dispara) y “Taxi ómnibus”. No todos los taxistas estuvieron de acuerdo con este invento. Algunos llevaban un pan en el asiento delantero y cuando se cruzaban con uno, se lo mostraban y le gritaban “¡muerto de hambre!”. Según relató a Infobae Juan Carlos González, presidente del Museo del Colectivo Antiguo, “los auto-colectivos de esa primera línea llegaron a ser 40, y el mismo taxista era el que elegía el número de línea”. La segunda línea en aparecer fue la "8". Iba desde Nazca y Rivadavia hasta Plaza de Mayo. Pero el viaje inaugural no lo pudieron completar. No cayeron en la cuenta que el día que arrancaron era el 12 de octubre, en la que la ciudad era un hervidero de gente ya que asumía su segundo mandato Hipólito Irigoyen. No pudieron llegar al centro. La resistencia de la mujer ¿Cómo vencer la resistencia femenina a subirse a este tipo de vehículos? Nuevamente el ingenio de los choferes llevó, en una típica acción de marketing, a contratar a mujeres como pasajeras y de ahí en más el prejuicio desapareció. Hasta algunos tenían un servicio exclusivo para las damas. El éxito alcanzado por el colectivo motivó a ampliar los transportes. José Fonte y José Chiofalo fueron los primeros en alargar la carrocería de los coches, lo que permitió llevar a 11 pasajeros: uno adelante, tres atrás, tres en el medio, dos en transportines (pequeños asientos plegables) ubicados a cada lado y dos más junto al chofer. Claro que si el que tenía que bajar estaba sentado atrás, todos los demás debían descender para permitirle el paso. Adefesio mal construido Aunque no todos construían sus unidades de la misma manera. Al español Grau la intendencia le había rechazado su vehículo varias veces “por ser un adefesio mal construido, elemental y casero”. Grau fue a verlo al intendente, diciendo que si no le aprobaban la unidad, se vería obligado a robar. Dicen que el intendente apoyó su mano en el hombro del hombre y le concedió el permiso. Se cobraba por secciones y el chofer dependía mucho de su memoria y de la honestidad del pasajero. El boleto no existía; aparecería en 1932 pero los choferes no quisieron saber nada y terminaría implementándose en 1942. “El 3 de enero de ese año -explicó González- en las líneas 212 y 263, los llamados choferes-guardas comenzaron a encargarse de cortar y cobrar boletos. En esta nueva función, los colectiveros permanecían en la parada hasta terminar la operación de entrega de boletos, y recién entonces arrancaban. El pasajero recibía el boleto al ascender, y cuando bajaba debía pagar y devolverlo. Este boleto usado iba a parar a una urna de vidrio ubicada junto a la boletera, más adelante fue reemplazada por una bolsa. Llegado el coche al control, la bolsa se vaciaba en una lata, una suerte de fosa común de todos los boletos del día. Aunque en la década de 1960 la devolución del boleto al descender cayó en desuso, durante muchos años la frase 'devuélvase al descender’ continuó apareciendo al dorso." Eran tiempos en los que no existían aún los postes indicadores. Por eso la Comisión de Control de Transportes implantó un sistema de boletas numeradas para organizar el ascenso por turno en puntos neurálgicos. Comenzó a ensayarse en Plaza de Mayo, el 19 de julio de 1944. El pasajero debía solicitar una boleta y la entregaba a un inspector, quien le indicaba el momento de ascenso al vehículo. No fue una buena idea, ya que este sistema duró poco tiempo. Con la implementación del boleto en los colectivos, el borde de corte de las máquinas boleteras apareció dentado. ¿Por qué? porque los colectivos no tenían guarda que cortaba el boleto. El colectivero debía solucionar el corte de boletos con una sola mano, ya que la otra estaba ocupada en el volante. El borde dentado resolvió el problema. A esta altura, el colectivo ya era definido como “tan argentino como el dulce de leche”. Fuentes: Historia del colectivo, por Vicente Gesualdo- Revista Todo es Historia; entrevista a Juan Carlos González, presidente del Museo del Colectivo Antiguo1 punto
-
El robot fue creado en una escala de 1:12, incorpora una cámara Wi-Fi que capta en tiempo real imágenes que puedes ver, por ejemplo, en una tablet o en cualquier dispositivo que se encuentre conectado. El pequeño juguete robótico se maneja gracias a un control remoto. Lo que empieza siendo un coche acaba transformado en un robot capaz de caminar sobre sus dos piernas; como colofón y detallazo en los “brazos” lleva incorporados dos lanzamisiles capaces de disparar, eso si a corta distancia, dos pequeños cohetes, que evidentemente no explosionan, eso ya sería demasiado. Para poder ser el orgulloso propietario de esta maravilla creada por Kenji Ishida debes hacer el pedido a través de la página web de la compañía, pero apresúrate porque parece ser que solo se han fabricado diez unidades del juguete en cuestión y las visitas a la web se cuentan por millones.1 punto
-
Se zarpa de bueno la verdad que si estaria orgulloso de terner uno!!1 punto
-
Mod Rewrite de Apache El Mod Rewrite es un módulo para el servidor Apache que sirve para reescribir las direcciones url. En este artículo se han seleccionado algunos ejemplos de reglas que suelen ser habituales. Estas reglas se deben guardar en el archivo .htaccess del directorio de nuestra web. La página se ha movido temporalmente Esta regla es muy útil cuando queremos cambiar la dirección de una página temporalmente. RewriteRule ^web.php$ nuevapagina.php [R,NC,L] ^ indica que es el inicio de una cadena $ indica el fin de la cadena. R significa que se redireccionará hacia la página destino. NC no importan las mayúsculas o minúsculas (case insensitive). L quiere decir que es la última regla (A veces se pueden definir grupos de reglas). Reescribir Urls Esta regla sirve para que apache convierta direcciones estáticas a dinámicas, útil para la indexación de nuestros sitios en los buscadores. RewriteRule ^([a-zA-Z0-9\-]+)/?$ script.php?parametro=valor&nombre=$1 [L,NC] ([a-zA-Z0-9\-]+) significa que se acepta cualquier palabra que contenga esos caracteres o números. /? significa que la barra (/) es opcional, y también se aceptaría una url sin este caracter Todas las direcciones que cumplan con esta regla se dirigirán a la dirección especificada script.php... $1 es el valor del primer parámetro. Ejemplo de Paginación con Mod Rewrite Este ejemplos es muy parecido al anterior. Es el caso en que tenemos que paginar resultados y queremos que nuestras direcciones url también sean estáticas. RewriteRule ^([a-zA-Z0-9\-]+)/([0-9]+)/?$ script.php?parametro=valor&nombre=$1&numpagina=$2 [L,NC] ([0-9]+) significa que sólo se aceptan números. $2 es el valor del segundo parámetro. ENMASCARAR Y MEJORAR UNA URL DE UN MISMO DOMINIO Existen una solucion más sencilla para enmascarar enlaces y en solo una linea. ¿Cómo? Usando htaccess, un archivo de configuración de directorios de Apache, dentro de este archivo podemos añadir una serie de directivas que nos permitirá entre otras cosas tener url amigables y redireccionamientos. El archivo htaccess es un fichero de texto que se llama .htaccess, es decir, su nombre comienza con un punto. Se puede crear con cualquier editor de textos y se coloca en el directorio donde deseamos que afecten las configuraciones indicadas dentro del fichero. Si lo colocamos en el directorio de publicación raíz del dominio, afectará a todos los directorios del dominio, pues este archivo modifica el directorio que lo contiene y todos los subdirectorios. El mecanismo para crear unas redirecciones pensadas para un mejor posicionamiento en buscadores es el siguiente. En el archivo .htaccess se define una regla de redirección interna, con esta sintaxis: RewriteRule url_patron url_destino RewriteRule es la instrucción para definir una redirección, que recibe dos parámetros: url_patron y url_destino. En el primero se especifica una URL patrón. Cuando la dirección a la que se está accediendo cumple el patrón indicado en url_patron, se redirecciona internamente hacia la URL de destino url_destino. La página se procesa en el archivo indicado en url_destino. El patrón es una expresión regular que corresponde con un conjunto de URLs posibles. Cuando el visitante intenta acceder a una URL que cumple esa expresión regular, internamente se procesa la página a través de la url_destino. Decimos que es un proceso interno, porque nadie se entera que la URL se está procesando a través de otro archivo, pues la dirección que aparece en el navegador siempre será la original y los buscadores no podrán detectar que Apache ha realizado una redirección interna para procesar la página. Así pues, para los visitantes y los buscadores que indexen los contenidos de nuestra web, las direcciones que están accediendo son las amigables para buscadores, a pesar que en realidad esos documentos no existan dentro de la estructura de directorios del servidor y el procesamiento real de la página se realice en otra URL de destino. Un ejemplo de instrucción RewriteRule podría ser el siguiente: RewriteRule ^articulos/(.+).php codigo/ver_articulo.php?nombre=$1 Como se ha dicho, la primera parte es el patrón que debe cumplirse para que se realice la redirección interna. Dicho patrón es una expresión regular que tiene una sintaxis especial. La dirección que se está accediendo en el servidor (URL) tiene que concordar con la expresión regular para que se realice la redirección. En la primera parte de la instrucción RewriteRule del ejemplo indicado anteriormente teníamos esta expresión regular: ^articulos/(.+).php Para explicar esta expresión regular creo que es mejor verla por partes. La primera parte sería "^articulos/". Esto quiere decir todas las URL que comiencen por "articulo/" (la palabra artículo seguida de una barra). El carácter ^ significa el comienzo de una expresión. La segunda parte es (+.). El "+" significa una o más repeticiones de algo. El "." significa cualquier carácter, luego "+." significaría uno o más repeticiones de cualquier carácter, es decir, cualquier conjunto de uno o más caracteres. El paréntesis sirve para agrupar expresiones. Luego veremos para qué nos puede servir esa agrupación. Por último, en la expresión regular tenemos ".php". La contrabarra es un carácter de escape que sirve para que el "." siguiente no sea considerado como cualquier carácter, sino como un punto sin más. Entonces, esto quiere decir ".php". En conjunto la expresión regular significa cualquier cosa que empiece por "articulos/", seguido de cualquier carácter o conjunto de caracteres, seguido de ".php". Con esta expresión regular concordarían URLs como estas: articulos/loquesea.php articulos/otra-cosa.php articulos/1234-xx_zz.php REGLAS PRACTICAS DE ENMASCARAMIENTO Patrones de expresiones regulares para htaccess. Regla htaccess RewriteRule ^platos/pais_([a-zA-Z_-]+).php$ codigo/platos_pais.php?nombre_pais=$1 Esta regla es similar a la anterior, pero ahora sí que estamos aceptando que algunos caracteres del nombre del país vengan en mayúsculas. Por ejemplo, acepta estas URLs: http://www.midominio.com/platos/pais_Espana.php http://www.midominio.com/platos/pais_Reino-Unido.php Que redirigiría a URLs como estas: http://www.midominio.com/codigo/platos_pais.php?nombre_pais=Espana http://www.midominio.com/codigo/platos_pais.php?nombre_pais=Reino-Unido Regla htaccess RewriteRule ^platos/nombre_([a-zA-Z0-9_-]+).php$ codigo/platos_nombre.php?nombre=$1 Esta regla .htaccess complica todavía un poco más la regla anterior, con la posibilidad que también se pongan números en la expresión. Redigirirá URLs como estas: http://www.midominio.com/platos/nombre_paella.php http://www.midominio.com/platos/nombre_PAELLA_2.php http://www.midominio.com/platos/nombre_paella-mariscos.php http://www.midominio.com/platos/nombre_Arroz3Delicias.php Que enviará internamente el procesamiento de esas páginas a estas direcciones: http://www.midominio.com/codigo/platos_nombre.php? nombre=paella http://www.midominio.com/codigo/platos_nombre.php? nombre=PAELLA_2 http://www.midominio.com/codigo/platos_nombre.php? nombre=paella-mariscos http://www.midominio.com/codigo/platos_nombre.php? nombre=Arroz3Delicias Regla htaccess Este esquema visto en el anterior ejemplo lo podemos repetir las veces que queramos en URLs que tengan una serie de directorios, separados por barras. Será algo como esto: RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+).html$ codigo/mascodigo/procesamiento.php? parametro1=$1¶metro2=$2¶metro3=$3 Esto acepta direcciones que tengan tres directorios distintos, uno detrás de otro, separado claro está por las barras. Los nombres de los directorios aceptan números, letras mayúsculas y minúsculas y guiones medios y bajos. Acepta direcciones tan variadas como estas: http://www.midominio.com/1/2/3.html http://www.midominio.com/loquesea/OTRACOSA/122.html http://www.midominio.com/a_b_c_1/A-B-C-2/A-b_C_987.html Internamente, htaccess procesará esas reglas y redirigirá a url como estas: http://www.midominio.com/codigo/mascodigo/procesamiento.php? parametro1=1¶metro2=2¶metro3=3 http://www.midominio.com/codigo/mascodigo/procesamiento.php? parametro1=loquesea¶metro2=OTRACOSA¶metro3=122 http://www.midominio.com/codigo/mascodigo/procesamiento.php? parametro1=a_b_c_1¶metro2=A-B-C-2¶metro3=A-b_C_987. PASO DE PARAMETROS En algunas ocasiones no basta con enviar un parámetro para que la página reciba todos los datos que necesita para mostrar los contenidos específicos. Si en la expresión regular tuviéramos otros (+.) entonces en la url_destino tendríamos que utilizar $1 para el primer (+.) que haya en la expresión regular y $2 para el segundo, $3 para el tercero y así sucesivamente. Por ejemplo, aquí podemos ver una sentencia RewriteRule que utiliza dos partes con (+.) para hacer el patrón. RewriteRule ^agenda/(.+)/(.+)\.html codigo/cita.php?mes=$2&anio=$1 Esta expresión regular quiere decir: Cualquier URL que comience por "agenda/", seguida de cualquier cosa, luego una barra y cualquier otra cosa, acabado en ".html" (fijarse la contrabarra antes de ".html" que es un carácter de escape para indicar que el "." de antes de "html" es un punto, en lugar del codigo especial que suele significar cualquier caracter. Ver el artículo anterior para más explicaciones sobre las expresiones regulares de este estilo. Como se puede ver, las direcciones estáticas amigables a buscadores no tienen por que finalizar en .php. En este caso finaliza en .html, pero podría acabar de cualquier otra forma, como .htm, .php3, .shtml o en un directorio. En el caso del ejemplo anterior, una dirección con esta forma: http://www.dominio.com/agenda/2006/7 Se hará corresponder con una url_destino así: http://www.dominio.com/codigo/cita.php?mes=7&anio=2006 Aunque también podrían haber concordado otros modelos de direcciones como: http://www.dominio.com/agenda/05/01 http://www.dominio.com/agenda/2006/marzo Será nuestra responsabilidad hacer el tratamiento para que sólo las URL que queremos muestren la página correcta. Veremos en el proximo capítulo cómo hacer este tratamiento de posibles errores y cómo resolver otros posibles problemas del uso del htaccess. Fuentes: google, webtaller, desarrolloweb, webtutoriales1 punto
-
Ahora ya que estan mas interesados en el tema, les dejo una mejor explicacion por parte de la gente de Rechechando.com [h=1]Reescribir direcciones con mod_rewrite de Apache[/h]Muchas veces, cuando estamos haciendo páginas web, nos interesa tener URIs lo más limpias que sea posible; no ya porque te indexen mejor los buscadores o porque queden más bonitas, sino porque un usuario normal, por lo general, va a recordar más fácilmente una dirección de este tipo, con lo que le será más fácil volver a nuestra página. Para esta tarea se suelen usar archivos .htaccess del servidor HTTP Apache junto con el módulo de reescritura del mismo (el mod_rewrite). El mod_rewrite es una pequeña extensión de Apache que nos permite que, al visitar una dirección de una página, realmente se está llamando a otra diferente. [h=2]Funcionamiento[/h]Apache usa archivos con el nombre de .htaccess (que no es que tengas que poner nombre.htaccess, sino simplemente eso, .htaccess) para que el administrador de las páginas web (que no del servidor) pueda definir una serie de parámetros de configuración para su espacio. Deben estar ubicados en el directorio sobre el que quieras aplicar esa configuración. Crear archivos de este tipo en plataformas Microsoft Windows puede ser un problema, ya que el famoso "sistema operativo" no te deja poner archivos sin nombre (solo tiene extensión) pero ello no significa que no se pueda hacer. El archivo se puede crear de varias maneras, yo recomiendo PHP ya que es muy fácil de hacer. Simplemente con poner algo como lo siguiente nos debería crear el archivo: <?php touch('.htaccess'); ?> Antes de seguir adelante debemos comprobar que podemos usar los archivos .htaccess y que tenemos el mod_rewrite activado. Comprobar que podemos usar .htaccess es bastante sencillo, basta con crear un archivo con ese nombre y poner en el una cadena aleatoria (tipo "asdasd123") y guardarlo en el directorio sobre el que queremos aplicar la reescritura. Si el servidor nos devuelve un Internal Server Error es que todo ha ido bien, podemos usarlos. Para comprobar que tenemos el mod_rewrite podemos hacer un phpinfo() (si disponemos de PHP en el servidor). Si Apache está como módulo de PHP entonces podemos mirar los módulos que tiene cargados; muy posiblemente el mod_rewrite está entre ellos. Para empezar deberemos poner al principio del documento (me refiero al .htaccess) la cadena RewriteEngine On, que se encarga de activar el módulo de reescritura, tras poner esto ya debemos poder empezar a escribir nuestras reglas para formatear las direcciones como nos plazca. A veces puede ser necesario poner un Options FollowSymLinks antes para que funcione, de modo que quedaría así: Options FollowSymLinks RewriteEngine On Si te ha fallado alguno de los pasos o no estás seguro de si tienes activado el mod_rewrite siempre puedes consultarle al administrador de tu sistema. [h=2]Funciones o comandos del mod_rewrite[/h]Hay varias funciones (o comandos) que usaremos a menudo y debemos conocer para escribirlos sin tener que recurrir al manual cada vez. La sintaxis de los comandos del mod_rewrite es bastante sencilla y rápida de entender. Los comandos empiezan con Rewrite. Normalmente el patrón es el siguiente: Comando Parámetro1 Parámetro2 Aunque en algunos casos varía ligeramente, como se verá a continuación: [h=3]RewriteEngine[/h]Solo acepta dos valores para su único parámetro: On y Off. Le dice a Apache una vez puesto en el .htaccess si debe o no iniciar el motor de reescritura. Está desactivado por defecto. #Para activar la reescritura RewriteEngine On [h=3]RewriteBase[/h]Nos permite ajustar una "base" para las rutas que escribamos a partir de que se usa. Lo que hace es añadir a las rutas siguientes el prefijo que indiquemos, esto puede ahorrar mucho espacio y es necesario muchas veces al no encontrarse el archivo .htaccess en el mismo directorio sobre el que se quiere aplicar (por eso es recomendable ponerlo ahí). RewriteRule ^/pagina/index.xml$ /pagina/xml.php?generar=xml #Con RewriteBase nos podemos ahorrar el /pagina/ de la siguiente forma: RewriteBase /pagina/ RewriteRule ^index.xml$ xml.php?generar=xml [h=3]RewriteCond[/h]Con esto se pueden definir sentencias condicionales, la sintaxis es muy simple y fácil de entender. Se pueden unir varias condiciones con el modificador OR. A continuación de este comando se debe poner o bien otro RewriteCond (usando el modificador para unirlos) o bien un RewriteRule, que es el que se debe ejecutar en última instancia en caso de cumplirse la(s) condicion(es). En caso de no cumplirse la condición el RewriteRule sería ignorado. #RewriteCond Cadena Patrón #Si la dirección contiene "pepe" se ejecuta el RewriteRule que habría debajo RewriteCond %{REQUEST_URI} pepe [h=3]RewriteRule[/h]Posiblemente este sea el comando que más usaremos. Es el pilar para lo que queremos hacer, ya que de el depende que se lleve a cabo la reescritura. Lo que hace es simple: le das un patrón y una URI de destino, si el patrón coincide se llama a la URI especificada con los parámetros que hayas indicado, etcétera. Las referencias hacia los valores agrupados con paréntesis en las expresiones regulares del patrón pueden ser referidas como $1, $2… hasta $9. Aquí es donde las expresiones regulares juegan un papel importante, al ser con lo que haremos los patrones de comparación. Es importante conocer su sintaxis básica y poder manejarse con soltura para crear reglas efectivas. [h=2]Modificadores de RewriteRule[/h]Esto son las flags de las que se habla en el manual oficial, a falta de una traducción mejor o más certera (banderas me parece cutre) he decidido referirme a ellas como modificadores. Los modificadores sirven para añadir características extra a ciertos comandos del mod_rewrite, como RewriteRule o RewriteCond. Cada comando tiene sus propios modificadores. Se ponen entre corchetes, tras un espacio al final del comando y se separan (en caso de especificar más de uno) con comas y sin espacios. Hay varios y no los explicaré todos, ya que para eso está el manual oficial, solo expondré los pertenecientes a RewriteRule que me parecen más útiles para lo que estamos haciendo. Por encima, los modificadores que más nos interesan son los siguientes: [h=3]nocase (NC)[/h]Este útil modificador hará que las expresiones regulares (o simplemente cadenas literales) que pongamos como patrón sean case-insensitive, es decir, que no se distinga entre mayúsculas y minúsculas. Esto nos puede venir bien muchas veces. [h=3]redirect (R[=codigo])[/h]Permite redireccionar a una dirección con un código concreto de respuesta del protocolo HTTP. El rango, según el manual oficial, debe estar entre el cñodigo 300 (HTTP_MULTIPLE_CHOICES) y 400 (HTTP_BAD_REQUEST). Para conocer el significado de esas constantes y los códigos que puedes usar debes consultar este protocolo. Suele interesar que, al redireccionar por este metodo, el archivo .htaccess no siga siendo interpretado, para lo que usaremos el modificador L. Por defecto, si no se especifica un codigo, se pone automáticamente el 302 (MOVED TEMPORARILY). [h=3]last (L)[/h]Este modificador hace que la condición, en caso de que se cumpla, sea la última en interpretarse del archivo. En caso de no cumplirse seguirá su curso normal. Es bueno especificarlo casi siempre, ya que le va a ahorrar a Apache la interpretación del resto de reglas. [h=2]Construcción de reglas o patrones[/h]Puedes construir tantas reglas como quieras, pero ten en cuenta que, cuanto más pesado el archivo, más le costará de interpretar a Apache. No recomiendo que pases de los 2KB (que ya es mucho). Se usan patrones basados en expresiones regulares (de tipo POSIX a partir de Apache 1.2.x) de manera que, si coinciden, se redirija al archivo que especifiquemos. Es realmente simple crear expresiones regulares para hacer las URIs como las de esta página. Dos buenos manuales para aprender a hacer expresiones regulares efectivas son los siguientes: Expresiones regulares, por Iván Arias Expresiones regulares en Ignside Es muy importante que delimitemos el rango de caracteres correcto acorde a nuestras necesidades. Si necesitamos obtener un número… ¿para que permitir letras u otros símbolos en el patrón? Esto nos ahorrará quebraderos de cabeza posteriores en lo referente a la seguridad de la aplicación final. También suele ser necesario que, en las direcciones que puedan terminar con o sin barra, indiquemos esta eventualidad (es decir, que pongamos la barra del final como caracter opcional), algo como lo siguiente: RewriteRule ^seccion/([0-9]+)/?$ index.php?seccion=$1 Si se diese el caso de que la barra opcional no está contemplada y es escrita en la dirección se lanzaría un error de tipo 404 (Página no encontrada). [h=2]Ejemplos de la vida real[/h]Hasta ahora se ha intentado enseñar lo básico sobre esta extensión y como funciona. Ahora que comprendemos un poco como va podemos poner unos ejemplos ambientados en la vida real. Lo que vamos a hacer en el siguiente ejemplo es obtener y enviar un identificador numérico a partir de una URL de tipo example.com/articulo/identificador_numérico, o sea, coger el número y pasárselo a una aplicación: RewriteEngine On RewriteRule ^articulo/([0-9]+)/?$ articulos.php?id=$1 [L] Si quisiésemos obtener el nombre de la sección de ese artículo (a partir de una dirección tipo example.com/articulo/sección/identificador_numérico) sería muy sencillo también: #La sección puede contener letras, guiones y guiones bajos RewriteRule ^articulo/([a-z_-]+)/([0-9]+)/?$ articulos.php?seccion=$1&id=$2 [NC,L] Ojo porque el identificador ya no está en $1, sino en $2, ya que es el segundo grupo de captura que hemos indicado. Al interesarnos tanto letras minúsculas como mayúsculas debemos poner el modificador NC. [h=2]Problema común y final del escrito[/h]Suele pasar que el programador, al usar el mod_rewrite por primera vez, después de haber hecho funcionar sus primeros patrones, etc. diga… ¡No me funcionan los enlaces! ¡No me carga la hoja de estilos! Bien, esto es muy fácilmente solucionable y totalmente previsible. Solo debemos poner la dirección "base" de la página hacia el dominio principal y hacer las demás rutas relativas. Para esto tenemos el elemento <base /> de XHTML: <head> <base href="http://www.example.com/" /> … </head> Con esto se soluciona cualquier problema de que no cargue algo…1 punto
-
Verdadero tema a estudiar cuando encontramos que queremos salir del estandard que nos traen por defecto las configuraciones de Apache. Muchisima informacion la podemos encontrar dentro de su sitio oficial, www.apache.org especialmente en los apartados de modrewrite, pero ya tienen que tener ganas de entender este tema para llegar a este punto, porque van a necesitar concentrarse, tener paciencia y leer atentamente demaciada informacion, ya que com bien explican las posibilidades de Apache sin increibles. Pero para simplificar el concepto, en la web de comocrearunsitioweb explican muy facil el concepto de hacer mas amigable una URL que tiene demaciados parametros de PHP. Interesante para empezar Los buscadores le dan importancia a las url y los lenguajes de programación web como PHP no generan urls muy amigables para los motores de busqueda. Si las url de nuestra web se ven parecidas a esto: "ejemplo.com/index.php?variable=1&otravariable=2&variabletres=3" claramente debemos cambiarlas para que se vean así: "ejemplo.com/1/2/3/". Una forma para lograr esto es con el mod_rewrite y .htaccess, un módulo de apache que reescribe las URLs de nuestra pagina web y las hace amigables para los buscadores. Para que funcione nuestro proveedor de hosting debe tener habilitado dicho módulo y soporte para archivos .htaccess (cualquier servidor bajo linux debería tenerlo). [h=2]Como hacer que nuestras URL sean amigables a los buscadores[/h]Si ya comprobamos que nuestro hosting soporta archivos .htaccess y tiene el mod_rewrite activado, haremos lo siguiente: 1-. Creamos un archivo vacio .htaccess en el directorio principal de nuestra pagina web y escribimos: Options +FollowSymLinks RewriteEngine on Estas dos lineas activan el motor y lo dejan listo para recibir las reglas de reescritura. 2-. Las reglas de reescritura tienen el siguiente formato: RewriteRule ^URLamigable URLdestino [flags] En el parametro URLamigable definiremos la estructura de la url reescrita, y el parametro URLdestino es la URL actual, donde mirará URLamigable. Por ejemplo, si tenemos una URL del tipo: "ejemplo.com/index.php?producto=cama-colchon" y queremos que se vea así "ejemplo.com/cama-colchon" deberemos escribir: RewriteRule ^([A-Za-z0-9-]+)/?$ index.php?producto=$1 [L] Pero si queremos definir una base para esa URL y que se vea así "ejemplo.com/productos/cama-colchon", haremos esto: RewriteRule ^productos/([A-Za-z0-9-]+)/?$ index.php?producto=$1 [L] Al principio puede parecer complicado, pero si se estudia detenidamente puede llegar a ser muy fácil.1 punto
-
Te dejo info de un Sitio personal de Victor Bracco [Desarrollador Web] El archivo .htaccess es un simple archivo de texto que Apache usa para tener algunas reglas sobre los directorios y los archivos. Resumiendo, este contiene determinadas directivas que obligan al servidor de web a actuar según los usuarios, así como a definir otras reglas para los documentos. Las características más utilizadas por los desarrolladores de sitios web, son aquellas que ayudan a la optimizacion de las url, control de trafico en una web, bloqueo de usuarios, y algunas otras que ya iremos viendo paso a paso. Aunque también existen muchisimas funcionalidad que pueden aplicarse, pero desde ya para usuarios algo más avanzados. Si necesitan más información deberás ingresar directamente al tutorial de Apache y extraer los datos de la fuente original. Primera regla El uso que la mayoría de los webmasters le da al .htaccess, es la posibilidad de optimizar el nombre de sus URLs, ocultando tediosas variables, que a Google no le gustan mucho. El ejemplo mas solicitado de este problema, es el que presentan los portales prefabricados, como PHP-Nuke, Xoops, y muchos otros, donde cada sección de la página, se accede a traves de una larga fila de variables, que resultan imposible de memorizar, tanto para nosotros, como para la mayoría de los buscadores. Si quisieramos ocultar algunas variables, tendríamos que hacer algo como esto: RewriteEngine on RewriteRule seccion/([_0-9a-z-]+)/([_0-9a-z-]+)/ pagina.php?var1=$1&var2=$2 Con este pequeño ejemplo, le estamos diciendo a nuestro servidor, que cuando alguien solicite la url: seccion/recomendanos/10, tendrá que abrir en realidad: pagina.php?var1=recomendanos&var2=10 El formato [_0-9a-z-] significa que puede esperar letras, números y guiones (bajo y medio), y el + a costado de la regla, indica que cada valor dado, debe tener como mínimo, un carácter de largo. También es posible reglas de la siguiente manera: [0-9]: solamente números. [0-9]{4}: números de 4 cifras. ([0-9]{1,2}: números de 1 y 2 cifras. (.*): cualquier expresión. [a-z]: solamente letras. [a-z]{1,10}: palabras entre 1 y 10 caracteres. Si por alguna razón, cuando subes tu htaccess a tu sitio web, este presenta un Error 500, es porque alguna de las reglas que has escrito, presenta errores de sintaxis y hasta que no lo modifiques, no podrás acceder a tu sitio correctamente. Personalización de Errores La forma de personalizar los que ofrecen los exploradores es bastante fácil. La sintaxis es bastante básica, y acá va un ejemplo para personalizar el bendito Error 404 - “Pagina no Encontrada”. Redirección Local RewriteEngine On ErrorDocument 404: error404.php Redirección Externa RewriteEngine On ErrorDocument 404: http://www.otrapagina.com/arhivo.php En este archivo error404.php o archivo.php (le podes poner el nombre que quieras) estará el contenido que vos quieras que se muestre cuando alguien llegue a ese error en tu página. Esta es quizás la regla más utilizada por los desarrolladores de sitios webs, pero se pueden personalizar todos los errores, y creanme que son muchos. También se puede optar por mostrar un mensaje de error emergente, si cambiamos el dirección de nuestro archivo, por el mensaje entre comillas (”mensaje”). RewriteEngine On ErrorDocument 404 "La pagina solicitada no existe" Siempre que estemos personalizando errores de la pagina tiene que ir la directiva ErrorDocument seguida del código del error. Hot Link El hot linking, es lo que se produce cuando desde nuestra pagina, linkeamos imagenes, videos, etc, que están publicados sobre otra página, o lo que es peor, sobre un servidor a cargo de otra persona, lo que equivale a un hurto de su trasferencia mensual, que se traduce como un gasto muy grande en el servicio de hosting. Podemos impedir que estos usuarios tengan links (generalmente img) sobre sus paginas, con nuestros archivo, si colocamos esta pequeña regla: RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?vbracco.com.ar(/)?.*$ [NC] RewriteRule .*\.(gif|jpg|jpeg|bmp)$ http://www.vbracco.com.ar [R,NC] Con esto, le decimos al servidor, que la única forma de mostrar las imagenes de nuestro sitio, es que el HTTP REFERER sea nuestra propia página. De cualquier otra forma, se mostrará la molesta X sobre la imagen, como si no existiera. Podríamos incluso, en vez de mostrar la X de error, disponer una imagen en blanco, o lo que nosotros quisieramos para mostrar cada vez que se linkee una imagen desde otro sitio. RewriteEngine On RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?vbracco.com.ar(/)?.*$ [NC] RewriteRule .*\.(gif|jpg|jpeg|bmp)$ images/nohotlink.jpg [L] También, podemos descartar o agregar extensiones de archivos que no quieres que te linkeen, como archivos de video o de sonido, pero siempre con la barra separadora |. Lo que no podemos hacer, es redireccionar una imagen en hot link, a una pagina web, ya que daría error de inconsistencia.1 punto