10 Hacks para WordPress mediante .htaccess
WordPress es una de las plataformas para la administración de un blog mas eficientes que podemos encontrar , sobre todo la posibilidad de agregar diversas mejoras para nuestro blog.
Esta es una pequeña serie de trucos para WordPress editando el archivo .htaccess , este archivo compuesto únicamente por texto que nos permite definir configuraciones en nuestro servidor apache.
1- Redireccionar el RSS de WordPress a Feedburner
Feedburner administra o gestiona de manera mas fácil nuestro feed , tanto para las estadísticas del Webmaster o Blogger como para el suscriptor , pero WordPress mantiene la dirección del feed por defecto y tenemos que usar algun plugin para realizar la redirección , podemos hacer esto de manera automática mediante el .htaccess agregando el siguiente código (Cambia la línea 6 por la dirección de tu feed en Feedburner):
# temp redirect wordpress content feeds to feedburner <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_USER_AGENT} !FeedBurner [NC] RewriteCond %{HTTP_USER_AGENT} !FeedValidator [NC] RewriteRule ^feed/?([_0-9a-z-]+)?/?$ http://feeds2.feedburner.com/tu-blog [R=302,NC,L] </IfModule>
2- Eliminar “/categoria” de la url de WordPress
Por defecto WordPress muestra la dirección de cada categoría de esta manera:
http://tublog.com/category/wordpress
Podemos agregar el siguiente código para modificar la estructura de la url:
RewriteRule ^category/(.+)$ http://www.yourblog.com/$1 [R=301,L]
Automáticamente nuestra url quedaría de la siguiente forma:
http://tublog.com/wordpress
3- Uso de la cache del navegador
Los usuarios que antes hayan visitado nuestro blog y vuelvan a el , probablemente ya tendrán elementos guardados de nuestro blog en sus archivos temporales y en la cache de su navegador , utilizar estos elementos beneficia a la carga del blog y el uso de banda ancha , evitando que dichos archivos se vuelvan a descargar:
FileETag MTime Size <ifmodule mod_expires.c> <filesmatch "\.(jpg|gif|png|css|js)$"> ExpiresActive on ExpiresDefault "access plus 1 year" </filesmatch> </ifmodule>
4- Comprimir contenido estático
Comprimir la información también puede reducir el trabajo del servidor para que no se vea afectado nuestro blog , dicha información será descomprimida por el cliente del usuario:
AddOutputFilterByType DEFLATE text/html text/plain text/xml
application/xml application/xhtml+xml text/javascript text/css
application/x-javascript
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4.0[678] no-gzip
BrowserMatch bMSIE !no-gzip !gzip-only-text/html
*Las letras que estan en negrita del codigo anterior , todas van en una sola linea , no van separadas , pero por motivos de diseño con el blog , no es posible poner toda la linea junta porque no se veria completamente.
5- Redirigir url estructuradas por fecha y nombre a solo nombre
Dirigete a Opciones>Permalink y escoge “Estructura personalizada” , en la opción 5 introduce /%postname%/.
Después en tu .htaccess agrega el siguiente código:
RedirectMatch 301 /([0-9]+)/([0-9]+)/([0-9]+)/(.*)$ http://www.domain.com/$4
6- Impedir comentarios de spammers
Cuando utilizamos algún plugin como akismet evitamos que se publiquen comentarios spam en nuestro blog dirigiéndolos a la cola de spam , pero ¿no seria mejor impedir que se hagan dichos comentarios ? , una forma sencilla de hacer esto es agregando el siguiente código, el cual funciona de manera simple, un usuario normal por lo regular procede de algún otro sitio, un boot spammer no, este procede de la nada.
RewriteEngine On RewriteCond %{REQUEST_METHOD} POST RewriteCond %{REQUEST_URI} .wp-comments-post\.php* RewriteCond %{HTTP_REFERER} !.*yourblog.com.* [OR] RewriteCond %{HTTP_USER_AGENT} ^$ RewriteRule (.*) ^http://%{REMOTE_ADDR}/$ [R=301,L]
7- Redirigir a los visitantes a pagina en mantenimiento
Cuando estamos realizando ajustes en el blog, no queremos que nuestros visitantes se lleven una mala impresión del sitio por posibles errores con el, por eso mismo podemos implementar de forma temporal una redirección hacia una pagina que indique que nuestro sitio esta en mantenimiento.
RewriteEngine on RewriteCond %{REQUEST_URI} !/maintenance.html$ RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123 RewriteRule $ /maintenance.html [R=302,L]
8- Proteger nuestro blog contra hotlinking
El hotlinking se da cuando se utiliza una imagen alojada en nuestro servidor y es puesta en otro sitio Web, consumiendo así ancho de banda perjudicando al blogger o webmaster en cuestiones económicas y de recursos del Server, para evitar el hotlinking podemos implementar el siguiente código:
RewriteEngine On #Replace ?mysite\.com/ with your blog url RewriteCond %{HTTP_REFERER} !^http://(.+\.)?mysite\.com/ [NC] RewriteCond %{HTTP_REFERER} !^$ #Replace /images/nohotlink.jpg with your "don't hotlink" image url RewriteRule .*\.(jpe?g|gif|bmp|png)$ /images/nohotlink.jpg [L]
9- Impedir el acceso al panel de administración a cualquier IP que no sea la tuya
Para impedir a cualquier usuario ingresar al panel de administración mas que únicamente tu, puedes hacerlo mediante este código y tu IP, aunque deberás de tener en cuenta que tu IP debe de ser estática. En donde dice xx.xxx… cambialas por tu IP.
AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "Example Access Control" AuthType Basic <LIMIT GET> order deny,allow deny from all allow from xx.xx.xx.xx </LIMIT>
10- Impedir el acceso a usuarios o spammers al blog
Esta es una buena alternativa cuando hay un usuario o troll de por medio , que solamente se dedica a molestar nuestro trabajo , podemos evitar que accese al blog que con este codigo agregando su IP
<Limit GET POST> order allow,deny deny from xxx.xx.xxx.xxx allow from all </Limit>
Además podemos agregar mas direcciones ip copiando el comando deny from y la ip correspondiente
Asi tenemos diversas maneras de personalizar nuestro blog bajo WordPress y alojado en un servidor Apache.
Via | Catswhocode
Tengo montado un servidor casero con Ubuntu server, apache2, mysql, php y wordpress en una red local con 15 ordenadores.
Si entro desde cualquier ordenador de la red local con la ip_interna del servidor (192.168.1.14) todo va perfecto.
Si trato de entrar desde internet con la ip-estática o pública (p.ej. 90.91.92.93:4444) sólo me muestra la página de inicio, sin tema y los enlaces de los posts no funcionan.
Tengo que poner el puerto porque mi router tiene el puerto 80 en uso sólo para él, el puerto 4444 está abierto y funciona ya que llego hasta la página de inicio, lo que no va son las direcciones que hay en la tabla de phpmyadmin, todas apuntan a 192.168.1.4.
Llevo meses buscando una solución me han dicho que tengo que modificar el fichero /etc/hosts incluyendo una línea del tipo 192.168.1.14 90.91.92.93:4444, ya lo he hecho pero sigue sin funcionar.
He leído que la solución está en el .htaccess pero resulta que dicho fichero no existe en mi servidor. ¿Está la solución en eso?
¿Sería algo así como: si entra una petición al servidor buscando 90.91.92.93:4444 sea redirigido a 192.168.1.4? ¿Eso cómo se hace?
En fin, ya estoy bastante desanimado pues llevo desde septiembre tratando de abrir el blog a internet pero no lo consigo y empiezo a creer que es imposible.
Espero vuestra ayuda si es posible.
De todas formas gracias por compartir vuestros conocimientos con los demás.
Saludos.
Antonio José desde Granada (ESP)
Excelente post… me has servido mucho..