|

Eliminar utm_source de la URL mediante htaccess

El otro día me preguntaba un amigo cómo quitar los parámetros que mete Google Reader en las URLs, ya que debido a ello algunos servicios que monitorizan referencias, consideraba las urls diferentes.

El truco es fácil, sólo hay que meter en el .htaccess lo siguiente:

RewriteCond %{QUERY_STRING} utm_source.*
RewriteRule (.*) $1? [R=301,L]
|

Redirigir iPhone, Blackberry y Palm desde .htaccess

Sencillo truco que nos puede ayudar a redireccionar nuestra web a la versión móvil cuando nos visite un usuario desde un iPhone, una Blackberry o una Palm

RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$
RewriteRule ^(.*)$ http://mobile.yourdomain.com [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*BlackBerry.*$
RewriteRule ^(.*)$ http://mobile.yourdomain.com [R=301]
RewriteCond %{HTTP_USER_AGENT} ^.*Palm.*$
RewriteRule ^(.*)$ http://mobile.yourdomain.com [R=301]

Redirect iPhone, Blackberry, & Palm Requests With .htaccess

Vía / @jlantunez

| |

Añadir variables a CSS mediante PHP y htaccess

Curioso script que nos permite añadir variables a nuestras CSS usando para ello PHP y htaccess. No es algo que recomendaría hacer por tema de rendimiento, pero sí para proyectos en los que quienes realicen las páginas no tenga demasiado conocimiento de desarrollo web.
El proceso es sencillo, las css mediante Apache se redireccionan a un script PHP, en las CSS se crean variables del siguiente modo $color: #FFF; y luego el nombre de la variable se usa en cada estilo. El PHP parsea el fichero CSS y sustituye cada aparición de la variable por su correspondiente valor. Se cachea el resultado y se muestra.
Puede que haya modos más eficientes, como que el archivo CSS realmente no exista, y cuando sea así, se ejecute el script y se cachee, así la próxima vez que se acceda, no se pasa por el script PHP.
How to Add Variables to Your CSS Files
Vía / CSS Globe

Editor de .htaccess online

Buena herramienta que nos permite crear ficheros .htacces de forma online, muy útil para aquellos que no tienen conocimientos de Apache pero que necesitan modificar el .htaccess.
Mediante diferentes opciones y formularios, nos permite rellenar los datos necesarios para que nos vaya devolviendo el .htaccess final. Este editor nos facilita la labor a la hora de: no permitir el acceso a ficheros, autenticacion, páginas de error, páginas por defecto, redirecciones y restricción de accesos.
.htaccess Editor

Evitar boots molestos mediante htaccess

La gente de AskApache nos ofrece un ejemplo de htaccess que nos permitirá evitar que nos lean boots molestos. La lista llega a más de 400 robots, lo cual puede suponer un enorme ahorro en ancho de banda y recursos.

ErrorDocument 403 /403.html
RewriteEngine On
RewriteBase /
# IF THE UA STARTS WITH THESE
RewriteCond %{HTTP_USER_AGENT} ^(aesop_com_spiderman|alexibot|backweb|bandit|batchftp|bigfoot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(black.?hole|blackwidow|blowfish|botalot|buddy|builtbottough|bullseye) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(cheesebot|cherrypicker|chinaclaw|collector|copier|copyrightcheck) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(cosmos|crescent|curl|custo|da|diibot|disco|dittospyder|dragonfly) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(drip|easydl|ebingbong|ecatch|eirgrabber|emailcollector|emailsiphon) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(emailwolf|erocrawler|exabot|eyenetie|filehound|flashget|flunky) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(frontpage|getright|getweb|go.?zilla|go-ahead-got-it|gotit|grabnet) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(grafula|harvest|hloader|hmview|httplib|httrack|humanlinks|ilsebot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(infonavirobot|infotekies|intelliseek|interget|iria|jennybot|jetcar) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(joc|justview|jyxobot|kenjin|keyword|larbin|leechftp|lexibot|lftp|libweb) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(likse|linkscan|linkwalker|lnspiderguy|lwp|magnet|mag-net|markwatch) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(mata.?hari|memo|microsoft.?url|midown.?tool|miixpc|mirror|missigua) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(mister.?pix|moget|mozilla.?newt|nameprotect|navroad|backdoorbot|nearsite) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(net.?vampire|netants|netcraft|netmechanic|netspider|nextgensearchbot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(attach|nicerspro|nimblecrawler|npbot|octopus|offline.?explorer) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(offline.?navigator|openfind|outfoxbot|pagegrabber|papa|pavuk) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(pcbrowser|php.?version.?tracker|pockey|propowerbot|prowebwalker) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(psbot|pump|queryn|recorder|realdownload|reaper|reget|true_robot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(repomonkey|rma|internetseer|sitesnagger|siphon|slysearch|smartdownload) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(snake|snapbot|snoopy|sogou|spacebison|spankbot|spanner|sqworm|superbot) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(superhttp|surfbot|asterias|suzuran|szukacz|takeout|teleport) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(telesoft|the.?intraformant|thenomad|tighttwatbot|titan|urldispatcher) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(turingos|turnitinbot|urly.?warning|vacuum|vci|voideye|whacker) [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^(wget|widow|wisenutbot|wwwoffle|xaldon|xenu|zeus|zyborg|anonymouse) [NC,OR]
# STARTS WITH WEB
RewriteCond %{HTTP_USER_AGENT} ^web(zip|emaile|enhancer|fetch|go.?is|auto|bandit|clip|copier|master|reaper|sauger|site.?quester|whack) [NC,OR]
# ANYWHERE IN UA -- GREEDY REGEX
RewriteCond %{HTTP_USER_AGENT} ^.*(craftbot|download|extract|stripper|sucker|ninja|clshttp|webspider|leacher|collector|grabber|webpictures).*$ [NC]
# ISSUE 403 / SERVE ERRORDOCUMENT
RewriteRule . - [F,L]

También nos ofrecen una alternativa con SetEnvIfNoCase

Blocking Bad Bots and Scrapers with .htaccess

Modificar Apache cuando mudemos nuestro blog

Leyendo el artículo De mudanza con tu blog, se nos ocurrió ampliar la información con una parte técnica.

Para ello es necesario modificar el archivo .htaccess que se encuentre en el directorio raíz.

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !dominionuevo.com$ [NC]
RewriteRule ^(.*)$ http://dominionuevo.com/$1 [L,R=301]

El código 301 es para informar que es de forma permanente.

Si queremos modificar las URLs, ya que por ejemplo hemos cambiado de path del Movable Type, tendremos que modificar tambien el .htaccess de la siguiente manera.

RewriteRule ^path-mt/mt-tb.cgi/([0-9])+/$ mt-tb.cgi/$1

Y si lo que queremos es pasar de una url del tipo /pagina.php?id=n a una que sea /titulo-de-la-pagina-n.php, tendremos que escribir una regla para cada página.

RewriteRule /pagina.php?id=1 /bienvenidos.php
RewriteRule /pagina.php?id=2 /google-compra-microsoft.php
RewriteRule /pagina.php?id=3 /como-meter-la-pata-con-facilidad.php
...
RewriteRule /pagina.php?id=n /me-voy-a-mudar-de-blog.php

Actualización: Este ejemplo no estaba del todo claro y ha sido corregido.

Más información

| |

Elige. Tu dominio con o sin www

www-si-o-no.jpg Uno de nuestros hábitos, aunque muchos dicen pijerías :), es mostrar los dominios en una versión, es decir con o sin www lo que impide la duplicación de contenidos en 2 url’s diferentes.

Las razones para evitar la duplicidad son variadas. Desde posicionamiento en buscadores a unificar el pagerank. Aunque Choan y Víctor lo resumen muy bien en castellano:

En realidad, lo importante es que el usuario pueda acceder a nuestro sitio con o sin el www. por delante. Ojo, con un pero bien grandote: debemos facilitar el acceso a través de cualquiera de las dos direcciones —en beneficio del usuario—, pero nuestros contenidos deben estar disponibles solamente en una de ellas.

Choan Gálvez

En la mayoría de casos estamos optando sin www. Las encontramos superfluas y totalmente innecesarias cuando verbalizas una dirección web.

Dando por hecho que tu web está en Apache crea o edita el archivo .htaccess de tu raíz FTP sustituyendo example y .com por lo que corresponda a tu dominio:


# Para que el dominio salga siempre sin www.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com/$1 [R=301,L]

Y si te gusta lo clásico:


# Para que el dominio salga siempre con www.
RewriteEngine On
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]
| | |

Ponle copyright a tus imágenes mediante PHP

copyright.png Muchas veces queremos que las personas se descarguen las imágenes que tenemos en nuestras páginas web, pero también queremos que quede bien claro quién es el autor. Para ello podemos editar todas las imágenes que tengamos, o bien que el propio entorno se encargue de poner el copyright por nosotros.

El método es sencillo, modificamos las opciones del Apache para que cuando se acceda a una imagen, lo redireccionemos a un script que se encargará de escribir el texto que queramos.

Read More “Ponle copyright a tus imágenes mediante PHP”

| |

Protege tus imágenes con Apache

Una de las cosas más molestas con las que te puedes encontrar al mantener un sitio, es ver cómo tus imágenes estan siendo utilizadas en otros sitios que las enlazan directamente a tu servidor, esto es molesto por dos motivos, evidentemente el uso de material gráfico de tu propiedad sin tu consentimiento, y la carga extra que sufre la conexión de tu página.
Para los que usamos Apache existe una fácil solución combinándolo con mod_rewrite, el método se basa en crear un fichero .htaccess que contenga una serie de reglas, que literalmente le indicarán al servidor que las imágenes solo se mostrarán si la petición viene del dominio propio.
Las reglas a añadir son las siguientes. Solo tendrás que sustituir el texto example.com por el nombre de tu dominio:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https?://(www\.)?example.com/?.*$ [NC]
RewriteRule \.(gif|jpg|jpeg|png|mp3|mpg|avi|mov)$ - [F,NC]
|

Restringir el acceso a directorios mediante Apache

Hay ocasiones en las que no queremos que se acceda a directorios de nuestro servidor web, ya sea porque estamos en fase de construcción, o porque contenga información confidencial, o porque sea el directorio dónde tenemos la aplicación de administración, o simplemente porque es el ordenador de casa y queremos poder acceder a él, pero no queremos que cualquiera se meta.

Realizar esta operación en Apache es sencillo, sólo necesitamos crearnos un fichero de usuarios, modificar (si es necesario) la configuración del servidor y añadir un fichero en los directorios que queramos restringir.

Read More “Restringir el acceso a directorios mediante Apache”