Mostrando entradas con la etiqueta htaccess. Mostrar todas las entradas
Mostrando entradas con la etiqueta htaccess. Mostrar todas las entradas

2011-09-11

Mobile HTML5 Boilerplate, ya podes tener la base de tu proyecto web para celulares y no arrancar de cero



Mobile HTML5 Boilerplate 1.1 ha lanzado , ofreciendo a los desarrolladores con una plantilla de confianza para la creación de aplicaciones Web para celulares. El sitio ofrece plantillas y documentación que pueda ayudar a los desarrolladores crear aplicaciones multiplataforma Web móviles que funcionan en los teléfonos inteligentes de hoy en día, sino que también ofrecen a teléfonos mas viejos como BlackBerry, Symbian y Windows Mobile. El proyecto en sí no es un FrameWork independiente, sino que trabaja con jQuery móvil, Touch Sencha, PhoneGap y Appcelerator.
¿Por qué es impresionante?
  • Compatibles con cualquier plataforma (Android, iOS, Blackberry, Symbian)
  • CSS clase de objetivo IE Mobile 7
  • Inicio icono de la pantalla (Android, iOS, Symbian)
  • Cruz navegador de vista de optimización de Android, iOS, IE, Nokia, Blackberry, Opera
  • Optimizado vista de escala (Android, iOS, Mobile IE, Blackberry, Opera)
  • Opción para habilitar iOS puesta en pantalla en modo de pantalla completa
  • Fuente de una mejor reproducción en IE Mobile
  • Adaptable marcado y el esqueleto CSS
  • Hoja de estilos CSS para dispositivos de gama baja
  • Mapa del sitio móvil
  • Móviles tipo MIME de apoyo
  • Herramienta de construcción para móviles
  • Se integra bien con PhoneGap y Appcelerator
Y entonces, la "impresionantes" características son:
  • HTML5 offline almacenamiento en caché de los smartphones
  • Ocultar barra de direcciones para maximizar el área de la pantalla
  • Hace clic en el botón que no espere a que el valor por defecto 300 ms evento click retraso
  • Textarea crecimiento automático
  • Ocultar Safari navegador Chrome
  • Móviles favoritos burbuja
  • Base de datos del navegador API Wrapper
  • Robusto usuario opcional de detección de agentes en. Htaccess
  • Móvil optimizado por defecto CSS
  • Los medios de comunicación consultas polyfill para Windows Mobile
  • Google Analytics para los dispositivos móviles de gama baja
La versión 1.1 del juego de herramientas ofrece dos descargas diferentes - la versión documentada con notas y enlaces y la versión libre de comentario . El proyecto también está disponible en github aquí .
Repetitivo móvil

No es un Framework, es la base para implementar desde cero una solución para celulares, teniendo compatibilidad con muchas plataformas moviles. 

Para ser claros, el repetitivo móvil no está destinada a ser una "construcción de una vez e implemente en todas partes" solución, sino que ofrece un conjunto de mejores front-end (marcado, CSS) prácticas para los desarrolladores de Web móvil para utilizar con el fin de aprovechar las características de alta gama de teléfonos inteligentes, como los que ejecuten Android o el iPhone, por ejemplo, sin dejar de ofrecer un apoyo básico para los navegadores Web más.
Los desarrolladores interesados ​​pueden obtener más información visitandohttp://html5boilerplate.com/mobile/ .
Y para más inspiración, hay un hilo en Quora enumerar varios buenos ejemplos de sitios web para móviles HTML5 aquí .

2010-09-01

Proteje tu sitio web con Apache por medio de .htaccess

Gran trabajo de Jeff Star y que ha publicado en su web con el nombre de The Perishable Press 4G Blacklist, una lista de directivas para su uso en servidores Apache y que se implemente fácilmente a través de .htaccess o el archivo de configuración httpd.conf. La lista está formada por varias partes e integra una serie de instrucciones que aseguran nuestros sitios web contra una amplia gama de actividades maliciosas.


Contenido del archivo .htaccess

  1. ### PERISHABLE PRESS 4G BLACKLIST ###  
  2.   
  3. # ESSENTIALS  
  4. RewriteEngine on  
  5. ServerSignature Off  
  6. Options All -Indexes  
  7. Options +FollowSymLinks  
  8.   
  9. # FILTER REQUEST METHODS  
  10. <IfModule mod_rewrite.c>  
  11. RewriteCond %{REQUEST_METHOD} ^(TRACE|DELETE|TRACK) [NC]  
  12. RewriteRule ^(.*)$ - [F,L]  
  13. </IfModule>  
  14.   
  15. # BLACKLIST CANDIDATES  
  16. <Limit GET POST PUT>  
  17. Order Allow,Deny  
  18. Allow from all  
  19. Deny from 75.126.85.215 "# blacklist candidate 2008-01-02 = admin-ajax.php attack "  
  20. Deny from 128.111.48.138 "# blacklist candidate 2008-02-10 = cryptic character strings "  
  21. Deny from 87.248.163.54 "# blacklist candidate 2008-03-09 = block administrative attacks "  
  22. Deny from 84.122.143.99 "# blacklist candidate 2008-04-27 = block clam store loser "  
  23. Deny from 210.210.119.145 "# blacklist candidate 2008-05-31 = block _vpi.xml attacks "  
  24. Deny from 66.74.199.125 "# blacklist candidate 2008-10-19 = block mindless spider running "  
  25. Deny from 203.55.231.100 "# 1048 attacks in 60 minutes"  
  26. Deny from 24.19.202.10 "# 1629 attacks in 90 minutes"  
  27. </Limit>  
  28.   
  29. # QUERY STRING EXPLOITS  
  30. <IfModule mod_rewrite.c>  
  31. RewriteCond %{QUERY_STRING} \.\.\/ [NC,OR]  
  32. RewriteCond %{QUERY_STRING} boot\.ini [NC,OR]  
  33. RewriteCond %{QUERY_STRING} tag\= [NC,OR]  
  34. RewriteCond %{QUERY_STRING} ftp\: [NC,OR]  
  35. RewriteCond %{QUERY_STRING} http\: [NC,OR]  
  36. RewriteCond %{QUERY_STRING} https\: [NC,OR]  
  37. RewriteCond %{QUERY_STRING} mosConfig [NC,OR]  
  38. RewriteCond %{QUERY_STRING} ^.*(\[|\]|\(|\)|<|>|'|"|;|\?|\*).* [NC,OR]  
  39. RewriteCond %{QUERY_STRING} ^.*(%22|%27|%3C|%3E|%5C|%7B|%7C).* [NC,OR]  
  40. RewriteCond %{QUERY_STRING} ^.*(%0|%A|%B|%C|%D|%E|%F|127\.0).* [NC,OR]  
  41. RewriteCond %{QUERY_STRING} ^.*(globals|encode|config|localhost|loopback).* [NC,OR]  
  42. RewriteCond %{QUERY_STRING} ^.*(request|select|insert|union|declare|drop).* [NC]  
  43. RewriteRule ^(.*)$ - [F,L]  
  44. </IfModule>  
  45.   
  46. # CHARACTER STRINGS  
  47. <IfModule mod_alias.c>  
  48. # BASIC CHARACTERS  
  49. RedirectMatch 403 \,  
  50. RedirectMatch 403 \:  
  51. RedirectMatch 403 \;  
  52. RedirectMatch 403 \=  
  53. RedirectMatch 403 \@  
  54. RedirectMatch 403 \[  
  55. RedirectMatch 403 \]  
  56. RedirectMatch 403 \^  
  57. RedirectMatch 403 \`  
  58. RedirectMatch 403 \{  
  59. RedirectMatch 403 \}  
  60. RedirectMatch 403 \~  
  61. RedirectMatch 403 \"  
  62. RedirectMatch 403 \$  
  63. RedirectMatch 403 \<  
  64. RedirectMatch 403 \>  
  65. RedirectMatch 403 \|  
  66. RedirectMatch 403 \.\.  
  67. RedirectMatch 403 \/\/  
  68. RedirectMatch 403 \%0  
  69. RedirectMatch 403 \%A  
  70. RedirectMatch 403 \%B  
  71. RedirectMatch 403 \%C  
  72. RedirectMatch 403 \%D  
  73. RedirectMatch 403 \%E  
  74. RedirectMatch 403 \%F  
  75. RedirectMatch 403 \%22  
  76. RedirectMatch 403 \%27  
  77. RedirectMatch 403 \%28  
  78. RedirectMatch 403 \%29  
  79. RedirectMatch 403 \%3C  
  80. RedirectMatch 403 \%3E  
  81. RedirectMatch 403 \%3F  
  82. RedirectMatch 403 \%5B  
  83. RedirectMatch 403 \%5C  
  84. RedirectMatch 403 \%5D  
  85. RedirectMatch 403 \%7B  
  86. RedirectMatch 403 \%7C  
  87. RedirectMatch 403 \%7D  
  88. # COMMON PATTERNS  
  89. Redirectmatch 403 \_vpi  
  90. RedirectMatch 403 \.inc  
  91. Redirectmatch 403 xAou6  
  92. Redirectmatch 403 db\_name  
  93. Redirectmatch 403 select\(  
  94. Redirectmatch 403 convert\(  
  95. Redirectmatch 403 \/query\/  
  96. RedirectMatch 403 ImpEvData  
  97. Redirectmatch 403 \.XMLHTTP  
  98. Redirectmatch 403 proxydeny  
  99. RedirectMatch 403 function\.  
  100. Redirectmatch 403 remoteFile  
  101. Redirectmatch 403 servername  
  102. Redirectmatch 403 \&rptmode\=  
  103. Redirectmatch 403 sys\_cpanel  
  104. RedirectMatch 403 db\_connect  
  105. RedirectMatch 403 doeditconfig  
  106. RedirectMatch 403 check\_proxy  
  107. Redirectmatch 403 system\_user  
  108. Redirectmatch 403 \/\(null\)\/  
  109. Redirectmatch 403 clientrequest  
  110. Redirectmatch 403 option\_value  
  111. RedirectMatch 403 ref\.outcontrol  
  112. # SPECIFIC EXPLOITS  
  113. RedirectMatch 403 errors\.  
  114. RedirectMatch 403 config\.  
  115. RedirectMatch 403 include\.  
  116. RedirectMatch 403 display\.  
  117. RedirectMatch 403 register\.  
  118. Redirectmatch 403 password\.  
  119. RedirectMatch 403 maincore\.  
  120. RedirectMatch 403 authorize\.  
  121. Redirectmatch 403 macromates\.  
  122. RedirectMatch 403 head\_auth\.  
  123. RedirectMatch 403 submit\_links\.  
  124. RedirectMatch 403 change\_action\.  
  125. Redirectmatch 403 com\_facileforms\/  
  126. RedirectMatch 403 admin\_db\_utilities\.  
  127. RedirectMatch 403 admin\.webring\.docs\.  
  128. Redirectmatch 403 Table\/Latest\/index\.  
  129. </IfModule>  
Para funcionar correctamente, el archivo .htaccess requiere de dos módulos específicos de Apache: mod_rewrite y mod_alias.
Más información acerca de las instrucciones de uso y explicaciones del código en Perishable Press

2010-03-24

Configurar tu sitio web para trabajar en UTF-8 con PHP + MySQL + Apache + Navegador + PostgreSQL

Desde un archivo php.ini para que por defecto PHP trabaje con UTF-8
default_charset = "utf-8"

Desde el archivo my.cnf para que tu MySQL tambien trabaje por defecto con UTF-8
[client]
default-character-set = utf8

[mysqld]
init-connect='SET NAMES utf8'
character-set-server = utf8
default-character-set = utf8
default-collation = utf8_unicode_ci
character-set-client = utf8

Dentro del archivo httpd.conf o .htaccess pones esto para que Apache trabaje con UTF-8 también:
AddDefaultCharset UTF-8

Dentro de tu script PHP pone esto:

< ? php //HTML HEADER header( 'Content-Type: text/html; charset=UTF-8' ); /* Configurar el encoding de PHP para trabajar con UTF-8 */ // Solo (PHP 4 >= 4.0.6, PHP 5 o superior)
mb_internal_encoding("UTF-8");

/* Ver el encoding que esta trabajando */
//echo mb_internal_encoding();
? >

Base de datos MySQL por medio del script:
Cuando trabajas con la base de datos siempre pasale estos SET a MySQL antes traer datos.
También tenes que tener todas tus tablas creada para que guarde los datos en UTF-8
para no tener problema.

//Extensión mysql
mysql_query( "SET NAMES utf8", $database_connection );
mysql_query( "SET CHARACTER SET utf8", $database_connection );

//Extensión mysqli
mysqli_query( "SET NAMES utf8", $tu_conector_a_mysql );
mysqli_query( "SET CHARACTER SET utf8", $tu_conector_a_mysql );

Otros para trabajar con UTF-8 desde PHP
//PHP ejemplo
$str = mb_convert_encoding($str, "UTF-8", "UTF-8" );
$str = @iconv("UTF-8", "UTF-8//IGNORE", $str );

Funciones equivalente y compatible con UTF-8 y multibyte para no romper textos
mail() = mb_send_mail()
strlen() = mb_strlen()
strpos() = mb_strpos()
strrpos() = mb_strrpos()
substr() = mb_substr()
strlower() = mb_strtolower()
strtoupper() = mb_strtoupper()
substr_count() = mb_substr_count()
split() = mb_split()

Expresión regulares compatible con UTF-8
PCRE requieren un modificador de patrón de 'U' para que el motor de PCRE consciente de que UTF-8 se utiliza.
POSIX tienen funciones equivalentes de múltiples bytes tales como a continuación:
ereg() = mb_ereg()
ereg_replace() = mb_ereg_replace()

PostgreSQL y UTF-8

Creamos las tablas con
CREATE DATABASE database_name WITH ENCODING 'UTF8';

Desde script PHP
pg_set_client_encoding( $database_connection, 'UTF8' );

SQL comandos
SET CLIENT_ENCODING TO 'UTF8';
SET NAMES 'UTF8';

Mas Info: Link

2010-02-24

21 hacks de htaccess que todo desarrollador debería conocer

La configuración del archivo .htaccess de Apache (hypertext access) puede ser una herramienta muy ponderosa en el desarrollo web si se utiliza de la forma adecuada.

Mediante .htaccess podremos realizar redirecciones, proteger archivos y directorios con contraseña, prevenir el hotlinking y el robo de ancho de banda, comprimir archivos y mucho, mucho más. Entérate cómo.

Asegúrate de hacer un backup de tu archivo .htaccess actual antes de aplicar cualquiera de estos hacks.

1. Prevenir el Hotlinking

¿Estás cansado de que la gente utilice tu ancho de banda poniendo las imágenes albergadas en tu servidor en su sitio web? Añade el siguiente código al final de tu archivo .htaccess para prevenir el hotlinking:

  1. Options +FollowSymlinks
  2. #Protect against hotlinking
  3. RewriteEngine On
  4. RewriteCond %{HTTP_REFERER} !^$
  5. RewriteCond %{HTTP_REFERER} !^http://(www.)?nombrededominio.com/ [nc]
  6. RewriteRule .*.(gif|jpg|png)$ http://nombrededominio.com/img/no_robar_ancho_de_banda.gif[nc]

2. Bloquea todas las peticiones del user-agent

Es posible bloquear a todos los user-agents indeseados que pueden ser potencialmente dañinos o quizá simplemente para mantener la carga del servidor lo más baja posible.

  1. #Block bad bots
  2. SetEnvIfNoCase user-Agent ^FrontPage [NC,OR]
  3. SetEnvIfNoCase user-Agent ^Java.* [NC,OR]
  4. SetEnvIfNoCase user-Agent ^Microsoft.URL [NC,OR]
  5. SetEnvIfNoCase user-Agent ^MSFrontPage [NC,OR]
  6. SetEnvIfNoCase user-Agent ^Offline.Explorer [NC,OR]
  7. SetEnvIfNoCase user-Agent ^[Ww]eb[Bb]andit [NC,OR]
  8. SetEnvIfNoCase user-Agent ^Zeus [NC]
  9. "" post="" head="">
  10. Order Allow,Deny
  11. Allow from all
  12. Deny from env=bad_bot

3. Redirecciona a todos, excepto a ciertas IPs

Si por alguna razón deseas denegar el acceso a todos los usuarios o sólo permitir a un cierto grupo de direcciones IP para que tengan acceso a tu sitio, añade el siguiente código a tu archivo .htaccess:

  1. ErrorDocument 403 http://www.nombrededominio.com
  2. Order deny,allow
  3. Deny from all
  4. Allow from 124.34.48.165
  5. Allow from 102.54.68.123

4. Redirecciones 301 amigables con SEO

Si has transferido nombres de dominio o deseas redireccionar a una página específica sin que afecte a los resultados de los motores de búsqueda como Google, utiliza el siguiente código:

  1. Redirect 301 /d/file.html http://www.nombrededominio.com/r/file.html

5. Crea una página personalizada para cada tipo de error

Si te cansaste del diseño por defecto de las páginas de error 401, 403, 404, 500, etc. puedes fácilmente crear la tuya propia y referirte hacía ella de esta forma:

  1. ErrorDocument 401 /error/401.php
  2. ErrorDocument 403 /error/403.php
  3. ErrorDocument 404 /error/404.php
  4. ErrorDocument 500 /error/500.php

6. Crea una lista de IPs prohibidas

¿Te cansaste de obtener siempre los mismos comentarios de ciertos usuarios una y otra vez? Simplemente prohíbe el acceso a determinadas IPs, añadiendo el siguiente código:

  1. allow from all
  2. deny from 145.186.14.122
  3. deny from 124.15

7. Setea una dirección de e-mail por defecto para el administrador de servidor

Con el siguiente código puedes especificar la dirección de correo electrónico por defecto para el administrador de servidor:

  1. ServerSignature EMail
  2. SetEnv SERVER_ADMIN default@dominio.com

8. Deshabilita la ventana de aviso de descarga

Usualmente al descargar algo de un sitio web, saltará una ventana que pregunta si deseas abrir el archivo o guardarlo en tu PC. Para prevenir esto, utiliza el siguiente código:

  1. AddType application/octet-stream .pdf
  2. AddType application/octet-stream .zip
  3. AddType application/octet-stream .mov

9. Protege un archivo específico

El código que sigue te permite denegar el acceso a cualquier archivo que desees, mostrando una página de error 403 cuando alguien intenta acceder al mismo:

  1. #Protect the .htaccess File
  2. "">
  3. order allow,deny
  4. deny from all

10. Comprime componentes con mod_deflate

Como alternativa a la compresión de archivos mediante Gzip, puedes implementar mod_deflate (que se supone es más rápido). Coloca el siguiente código en la parte superior de tu archivo .htaccess:

  1. "">
  2. (js|css)$="">
  3. SetOutputFilter DEFLATE

11. Agrega headers de expiración a los archivos

El siguiente código muestra cómo agregar fechas de expiración en las cabeceras de los archivos:

  1. (ico|pdf|flv|jpg|jpeg|png|gif|swf)$="">
  2. Header set Expires "Wed, 21 May 2010 20:00:00 GMT"

12. Seteando la página por defecto

Puedes hacer que la página a mostrar ni bien un usuario llegue a tu sitio no sea la archiconocida "index". Aquí seteamos "about.html" como página de inicio:

  1. #Serve Alternate Default Index Page
  2. DirectoryIndex about.html

13. Proteje tus archivos y directorios con una contraseña

  1. #proteger un archivo con contraseña
  2. "">
  3. AuthType Basic
  4. AuthName "Prompt"
  5. AuthUserFile /home/path/.htpasswd
  6. Require valid-user
  7. # proteger un directorio con contraseña
  8. resides
  9. AuthType basic
  10. AuthName "This directory is protected"
  11. AuthUserFile /home/path/.htpasswd
  12. AuthGroupFile /dev/null
  13. Require valid-user

14. Hacer una redirección 301 de un dominio viejo a uno nuevo

Incluyendo este snippet en el .htaccess de tu viejo dominio, conseguirás redigir a otro nuevo (sin ser penalizado por Google por duplicar contenido, dado que el 301 es un aviso de "redirección permanente"):

  1. # Redirigir de un dominio viejo a uno nuevo
  2. RewriteEngine On
  3. RewriteRule ^(.*)$ http://www.nuevodominio.com/$1 [R=301,L]

15. Forzar el cacheo

El siguiente snippet no va a incrementar directamente la velocidad de carga de tu sitio en general, pero sí va a cargar más rápido cuando el mismo usuario vuelva a visitarlo al enviar un status 304 cuando se pidan elementos que no han sido modificados. Puedes cambiar la frecuencia de cacheo al cambiar el número de segundos (en este ejemplo se da una vez al día):

  1. FileETag MTime Size
  2. ExpiresActive on
  3. ExpiresDefault "access plus 86400 seconds"

16. Comprimir componentes al activar Gzip

Esto hace que sea más rápida la carga de tu sitio:

  1. AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript
  2. BrowserMatch ^Mozilla/4 gzip-only-text/html
  3. BrowserMatch ^Mozilla/4.0[678] no-gzip
  4. BrowserMatch bMSIE !no-gzip !gzip-only-text/html

17. Quitar palabras o strings de una URL

En este ejemplo, quitaremos "category" de nuestras URL, es decir: http://tudominio.com/category/blue -> http://tudominio.com/blue

Agrega este código al final de tu .htaccess:

  1. RewriteRule ^category/(.+)$ http://www.tudominio.com/$1 [R=301,L]

18. Deshabilitar la navegación por los directorios de tu sitio

  1. Options All -Indexes

19. Redirigir los Feeds de WordPress a FeedBurner

  1. #Redirect wordpress content feeds to feedburner
  2. "">
  3. RewriteEngine on
  4. RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC]
  5. RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC]
  6. RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds.feedburner.com/tufeed [R=302,NC,L]

20. Remover la extensión del archivo de una URL

Para que sea más amigable al usuario y a los buscadores, por ejemplo "http://www.tudominio.com/autos.html" -> "http://www.tudominio.com/autos"

  1. RewriteRule ^(([^/]+/)*[^.]+)$ /$1.php [L]

21. Quitar el "www" del dominio

  1. #remove www from URI
  2. RewriteEngine On
  3. RewriteCond %{HTTP_HOST} ^www\.dominio\.com$ [NC]
  4. RewriteRule ^(.*)$ http://dominio.com/$1 [L,R=301]

Más sobre .htaccess (en inglés):

Fuente: DevMoose

Fuente: LINK