Professional Documents
Culture Documents
htaccess
Para aquellos que pelean contra WP y el formato de links. Y también para quien lo necesite una
pequeña recopilación de consejos para poder crear y modificar el archivo misterioso que todo lo
puede :p.
Notas de traducción
Esta traducción fue realizada bajo permiso expreso y por escrito - en e-mail -
Commons Atribución-NoComercial-SinDerivadas
Los vínculos fueron mantenidos así que éstos seguramente se encontrará en inglés
La traducción
En este tutorial mejoraremos nuestro sitio web modificando el archivo .htaccess.¿Por qué escribí
este artículo? Porque en la red encontré un montón de artículos sobre esta pequeña bestia pero
cada uno de ellos englobaba un problema en particular y no el uso general del archivo, o eran
demasiado grandes cuando uno necesitaba algo en poco tiempo. Por lo que estoy intentando
recopilar todas los datos útiles en un tutorial sencillo pero monolítico, que será actualizado a
medida que consiga más información. Primero sin embargo, veamos qué es un archivo
.htaccess.
Podrías querer deshabilitar totalmente el acceso a una carpeta (por ejemplo, una carpeta
con librerías de programación que se incluyen en los archivos principales. En este caso sólo los
acceder via web). Bueno, simplemente crea un archivo .htaccess en esa carpeta que contenga:
<Files privado.html>
Order allow,deny
Deny from all
Volver al índice
Listado de carpetas
Si se quiere hacer las carpetas navegables, entonces necesitamos agregar esta línea al
archivo .htaccess
IndexOptions FancyIndexing
IndexIgnore *
Volver al índice
Activar compresión
Se puede habilitar la compresión de datos inherente de PHP para ahorrar ancho de banda
Volver al índice
Escondiendo archivos
Para deshabilitar el acceso a un archivo en particula se puede utilizar una expresión regular y la
directiva Files para denegar acceso a cualquier archivo que comience con .ht
Se puede modificar esto para restringir un archivo en particular (como archivos de configuración,
Order allow,deny
Deny from all
Satisfy All
Volver al índice
Si se quisiera redireccionar los visitantes cada vez que se encuentran con una página de error
Obviamente, se puede redefinir para que capture otros errores http (403, 5000, etc). Sigue
Consejo: Internet Explorer tiene una “funcionalidad” poco documentada que previene la
utilización de cualquier página de error 404 personalizada que sea menor a 512 bytes de largo.
Los visitantes serán enviados, en cambio, a la página propia de IE, que es genérica y sugiere
que utilizen una búsqueda en MSN para buscar la información en internet. ¡Esa es una forma de
perder visitantes! Asegúrate que tu página personalizada esté por sobre este límite - algo así
Volver al índice
Utilizando el motor rewrite [de reescritura] se denegará el acceso al sitio a cualquier visitante
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([-a-z0-9]+\.)?
example\.com[NC]
RewriteRule .*\.(zip|mp3|avi|wmv|mpg|mpeg)$
http://www.example.com/images/nohotlink.gif [R,NC,L]
Esto dice: “si el visitante no proviene de misitio.net, entonce redirije todos los pedidos de
esa forma, puedes redirigir a una página, o lo que desees, o p uedes modificar la lista de
extensíones de archivo para incluir/quitar otros archivos. Cuidado: cuando se decide bloquera el
hotlinking de imágenes recuerda que puedes estar bloqueando todo tráfico fuera del alcance de
tu dominio. Por ejemplo, si se posee un archivo de sindicación tomado por bloglines necesitarás
modificar la regla para permitirles a los lectores obtener las imágenes - o el RSS se verá mal.
Volver al índice
En algunos casos se querrá bloquear algunos robots maliciosos, como spiders o descargadores.
Para ello utilizaremos mod_rewrite nuevamente. Normalmente los robots maliciosos ignoran el
archivo de directivas robots.txt por lo que se podría querer forzar un error 403 cada vez que
Volver al índice
No mostrar ‘wwww’
Options +FollowSymlinks
RewriteEngine on
RewriteCond %{http_host} ^www\.example\.com[nc]
RewriteRule ^(.*)$ http://example.com/$1 [r=301,nc]
Volver al índice
Se puede aumentar la seguridad cambiando la extensión de los scripts para que los visitantes
Volver al índice
Esto es útil cuando se quiere agregar una contraseña a ciertas páginas y/o archivos
modo ASCII.
AuthUserFile /home/pathto/.htpasswd
AuthType Basic
AuthName "Mi Carpeta Secreta"
require valid-user
directiva
consejo.
Volver al índice
Activando SSI
Se puede utilizar esta instrucción para cambiar la página por defecto (el orden es importante)
AddDefaultCharset utf-8
Volver al índice
CheckSpelling On
Volver al índice
MD5 para agregar un MIC [Control de Integridad de Mensaje en inglés] en cada pedido. Esto es
ContentDigest On
Volver al índice
Fuentes
http://corz.org/serv/tricks/htaccess.php
http://underscorebleach.net/jotsheet/2004/06/htaccess-
prevent-hotlinking
http://brainstormsandraves.com/archives/2005/10/09/htaccess/
http://www.usphp.com/security.hiding.html
Volver al índice
Herramientas
Volver al índice
55 Razones para diseñar en XHTML/CSS
Este es un artículo que, aunque teniendo cierto sentido humorístico, no deja de tener cierta
razón. Tómese con pinzas algunos de estos puntos y no se lo tomen tan a pecho los puristas; el
Notas de traducción
El artículo fue traducido sin el consentimiento explícito del autor por lo que
misma sinembargo)
Los vínculos fueron mantenidos del artículo original por lo que seguramente estarán
en inglés
La traducción
2. No necesitas gastar más ideas en decidir los estilos del código del
5. Puedes ahorrar en costos de ancho de banda y los visitantes las verán más
6. Será más sencillo actualizar a XHTML 2.0 que nos proveerá de más
herramientas semánticas
cambios de código
11. Se puede hacer el diseño luego de que la mayor parte de la base está
hecha con ayuda del cliente (o jefe) para pensar de forma realista cuánto
12. Es posible poner links directos al contenido de tus páginas (comparado con
Flash)
13. Los botones del navegador como el tamaño del texto y atrás/adelante
completo
18. Se puede hacer la base casi totalmente independiente del diseño final, por
21. Tus sitios son automáticamente accesibles por toda clase de navegadores
22. La promoción de los estándares web te ayudará con tu trabajo futuro, sin
24. Código bien formado asegura que el sitio funcione en más navegadores
28. Aprenderás las bases de XML, que sirve para muchas otras cosas
29. Los archivos CSS son guardados en la caché del navegador para agilizar la
utilizando XSLT
35. Te sentirás mejor contigo mismo al hacer sitios “de la forma correcta
36. Ellos lo hacen: Dan Cederholm, Jeffrey Zeldman, Jason Santa Maria, Shaun
Inman, Cameron Moll, Douglas Bowman, Dave Shea…
44. Puedes usar hacks y técnicas con nombres cool como “seamos buenos con
Opera”
de caracteres
46. Con más gente produciendo páginas más livianas, la cantidad de datos
moviéndose en toda la red será menor y todas las conexiones serán más
rápidas
48. Existe más gente pensando sobre las ventajas, desventajas y trucos de
sitios diferentes
resultados]
206 “xhtml is better than html” > 87 “html is better than
correctamente, no hará falta convertir todos los sitios de HTML sólo para
53. Meintras más gente utilice XHTML, nos aseguramos que en el futuro IE
Flash en su lugar
CSS al desnudo
Los casi 200 locos que, según mis estadísticas, van a entrar hoy a esta página se preguntarán
qué pasó con el diseño. Los que leen desde un lector de feeds, vengan y pregúntenselo.
están dando vueltas por todos lados. Por fin creo que una vez inventaron uno que valía la pena.
La idea de todo esto es fomentar los estándares. Mostrarle a tu público cuán accesible es tu
¿Para qué?
Esto puede parecer inútil a algunos. Otros dirán que con Flash estas cosas no pasan. Pero yo les
digo que así como lo ven es como lo van a ver en una Lynx corriendo en una XT con linux en
disquette, en un Opera, Firefox, IE, en el navegador de un celular, una palm o lo que se les
ocurra. Y el usuario va a poder usarlo tranquilamente por más que no tenga la última
tecnología o no la quiera usar. Lo que es más, una persona con problemas de visión
seguramente no ve cuán lindo queda tu sitio con colorcitos; lo prefiere así para que su programa
Esto también demuestra para qué se hizo CSS. El HTML no es un lenguaje de presentación, sólo
le da una base a Internet para poder inter-relacionarse. Todo el resto de arriba son adornos.
La locura es obra de Dustin Díaz. Es sólo un día al año, el 5 de Abril, en el que estamos seguros
que todos nuestros usuarios van a estar viendo nuestro sitio igualito sin importar si lo están
¿Cómo?
Hay varias formas, todo depende. La más sencilla es simplemente comentar la línea de la hoja
de estilos. Sin embargo vas a necesitar hacer esto todos los años (si tu locura da para tanto).
<?php
$DustinsNakedDay_isToday = (date('md')=='0405');
$DustinsNakedDay_allPages = true; // false for just the home
page
$DustinsNakedDay_getNaked = ($DustinsNakedDay_isToday &&
(is_home() || $DustinsNakedDay_allPages));
if(!$DustinsNakedDay_getNaked) { ?>
<link rel="stylesheet" href="” type=”text/css” media=”screen” />
<?php } ?>
Simple PHP
Agregás el código siguiente y luego utilizás la función como guarda de un if que incluye el código
<?php
function is_naked_day() {
$start = date('U', mktime(-12,0,0,04,05,date('Y')));
$end = date('U', mktime(36,0,0,04,05,date('Y')));
$z = date('Z') * -1;
$now = time() + $z;
if ( $now >= $start && $now <= $end ) {
return true;
}
else {
return false;
}
}
?>
Nótese que esta función devolverá que es el día de desnudos si en algún lugar del mundo
todavía es 5 de Abril.
For users :
Easily customize your theme by changing images, colors, elements sizes, fonts or anything
the theme provides customization options for.
Download the plugin, place the customize folder in your wordpress plugins folder, and then
activate the plugin. A new tab will appear when you go to “Presentation”, named
“Customize Theme”, providing options for your theme if it is compatible.
For themers :
You made a great looking, neat and sweet theme ? Would not you like to let users change
some colors, backgrounds, sidebar width or make layout whether liquid or fixed ? Grr
making that stupid form, saving those database entries, hey i’m just a css coder man ! Cool,
this is exactly for you, then, just see :
This code :
a {
/*:Navigation color*/
color:#ff6600;
}
Some explanations : You must create a separate css named “custom_template.css” in your
theme folder. Write this little css snippet in it. You just saw that comment in the css, above
the color property ? That’s the only thing you need : add a comment beginning with “:” and
then add the name you would like to give to the property. Here i chose “Navigation color”,
but it could have been anything else.
With this only comment, and if the Customize plugin is installed and activated, then the
user will be able to change this value in the Customize panel, with a cool color selector.
Another example ?
body {
/*:Header image*/
background-
image:url(images/headers/bubbles.jpg);
}
Yet another ?
#title_image {
/*:Header height*/
padding-top:200px;
}
Sliders are provided for all length values. User can also choose between px, em or %,
which is great for example to switch between liquid or fixed layout.
No worries, all of this will be handled by the plugin, you can even mix classes, mix
properties, names, whatever, only one field will be output. It will work ok since you did add
the special comment before the property-value pair.
Note that any property will work, providing a specific input widget or a simple input as a
fallback.
Besides this, you can provide additionnal sub-themes with your theme. They can be some
preset to choose from, or completely different css to provide additional properties or a
different layout. Just add some css files with names beginning with “custom_” and use the
same rules as for custom_template.css. These stylesheets will appear as a select box in the
Customize panel :
Users can also save their own settings. In fact they have to, that’s the way settings are
applied :
If for some reasons the user can’t write files, values are stored as variables. Note that i did
not test this extensively so let me know if you succeeded or failed.
YammYamm (yet another multilingual manager x2). You create a top category and a top
level page for each language. In the options panel, you set the languages. When you create
an article, make it under the language top category. When you create a page, make it under
the language top page. Then you call the appropriate functions in your template for
language selection and navigation display. That’s it.
Usage :
6. Go to your space, then “Options”, then “YammYamm” and set your options
7. Then you must tell your template to use YammYamm :
1. sidebar.php :
Edit your sidebar.php then call the function “yy_menu($args_page,$args_blog);” instead
of “wp_list_cats” and/or “wp_list_pages” like this :
Explanation : The function will display the menu (with “ul/li” tags) automagically
depending on whether the visitor is on a page or a post, and will guess the language too.
Update : To show always and only the blog categories, dont fill the “$args_page”
argument, and do the contrary to show only the pages :
2. header.php :
1. At the very beginning add :
It will detect the language from the browser and redirect to the home page og this
language.
Update : In the options panel, you can choose whether to set the top page or the
top category as the home of your website.
2. When you want to add a language selection menu :
<?php if(function_exists('yy_lang_menu'))
yy_lang_menu("lang_menu"); ?>
That is the same for the pages. If no language is set, all the pages will be shown. If you
choose a language, only the children pages will display :
Roadmap :