wordpress: forzar redireccion a https para aplicar certificado SSL con el .htaccess

Buenas a tod@s

Para que funcione el certificado SSL que el tocawebs de chrome requiere para no protestar, debemos forzar la web a que todos los enlaces sean siempre HTTPS

En los ajustes generales de wordpress, tenemos los campos Dirección de WordPress (URL) y Dirección del sitio (URL) en los que indicaremos el https

Si aun asi todavia podemos acceder a nuestra web sin el https el siguiente paso es editar el .htaccess añadiendo estas dos lineas:

Con estas dos pequeñas indicaciones ya no deberiamos tener mas problemas para poder navegar en nuestro siempre a la sombra del certificado encriptador que a google tanto le gusta

Espero que este articulillo sea de ayuda

Anuncios

#SEO & #PHP : Cómo crear URLS amigables con .htaccess by @JuanDBB_Emenia

fuente: http://www.emenia.es/como-crear-urls-amigables-con-htaccess/

¿Qué es una URL amigable? Lo mejor es un ejemplo. Esto NO es una URL amigable:

htaccess1
En cambio esta SI es una URL amigable:
htaccess2

Su propio nombre lo indica: las URL amigables son más fáciles de usar y de recordar por los usuarios y también se dice (y hay quien dice que no) que son mejores para el posicionamiento en buscadores. Además describen mucho mejor los enlaces dentro de una página web y añade un mayor nivel de profesionalidad a nuestras webs.

De todas formas, cuando hemos creado una página dinámica en PHP lo normal es que tengamos URL no amigables. ¿Cómo las convertimos en amigables de manera automática? Una manera de hacerlo es con un archivo.htaccess y gracias a Apache y su mod_rewrite.

Veamos la teoría: mod_rewrite es un módulo de Apache que permite manipular en el servidor las URLs solicitadas. Es decir, cuando llega al servidor la solicitud de una URL, esta se comprueba con respecto a una serie de reglas creadas con Expresiones Regulares creadas para detectar un patrón determinado. Si se encuentra ese patrón en el URL y se cumple la condición impuesta por la Expresión Regular se sustituye el patrón por una cadena de texto o por una acción determinada.

htaccess3

IMPORTANTE: Para que todo esto funcione tiene que estar activado el módulo mod_rewrite en nuestro servidor Apache. Podemos saber si lo está simplemente con:

Y de entre toda la información recibida si el módulo está activado tendremos:
mod_rewrite

Lo más normal es que esté activado. Sino fuera así quizás tendríamos que hablar con nuestro proveedor de hosting.

Una vez sabemos que mod_rewrite está activado lo que necesitamos es un archivo .htaccess ¿Qué es un archivo .htaccess? Es un fichero de configuración utilizado por los servidores web Apache. Son archivos de texto.

¿Qué vamos a escribir en el archivo .htaccess? Como decíamos antes, una serie de Expresiones Regulares para interpretar el URL entrante y crear un URL saliente interpretable por nuestro código. Si no sabéis nada sobre Expresiones Regulares (o Regular Expressions en Inglés) es importante que leais algo sobre las mismas antes de seguir. Con una simple búsqueda en Google podréis encontrar gran cantidad de tutoriales. Si sabéis inglés, este tutorial de themeforest es muy bueno. También podéis bajaros esta hoja de referencia de Expresiones Regulares(en inglés)

Bueno, vamos a pasar a la acción. Os aconsejo que lo hagáis también vosotros improvisando casos distintos para poderlo comprender mejor. Vamos a empezar por un ejemplo sencillo: Vamos a crear dos archivos, uno index.php y otro clientes.php

index.php tendrá únicamente un enlace a clientes.php, para simplificarlo todo un poco.

Como podéis ver el enlace es ya una URL amigable. Sin embargo al hacer click sobre el enlace necesitamos interpretar esa URL que llega al servidor para que este sepa qué hacer. Creamos un archivo de texto, lo grabamos como .htaccess y escribimos en él:

Vamos a ver línea a línea. En primer lugar tenemos que activar la re-escritura de la URL, para lo cual hay que activarRewriteEngine. A continuación establecemos una Regla de Re-escritura (RewriteRule) para gestionar la página clientes.php. Como véis, estamos re-escribiendo la URL amigable clientes/juan al formato normal clients.php?id=’juan’
En esta regla de re-escritura hay dos partes. Por un lado ^clientes/(\w+)/?$ que es una expresión regular que indica:
htaccess4
Ahora vamos con la segunda parte. En la segunda parte tenemos la expresión que sustituirá a la primera parte:
htaccess5

Ahora vamos a ver el archivo clientes.php:

Haced la prueba y veréis cómo funciona perfectamente la URL amigable. Para complicar más las cosas se pueden incluir banderas al final que cada expresión. Imaginaros por ejemplo que hubiera posibles alternativas para reescribir una URL amigable, pero queremos que una vez encuentre la primera se detenga ahí y no siga contrastándose con el resto de Expresiones Regulares. Entonces la bandera a añadir sería [L]:

Tenéis todas las banderas en esta hoja de ayuda rápida de mod_rewrite.

Por último, decir que es aconsejable añadir unas pocas líneas más a nuestro código. Lo voy a hacer aprovechando para crear un nuevo ejemplo. Supongamos un caso como este:
htaccess6
El archivo .htaccess que crearíamos sería:

Hemos añadido un condicional:

para comprobar que está activado el módulo antes de hacer nada. Luego hemos añadido “RewriteBase /” que indica que el directorio base es el raíz. Si fuera por ejemplo una carpeta llamada “base” haríamos “RewriteBase /base”.
Además hemos añadido dos líneas que lo que hacen es restringir la re-escritura sólo a rutas que no existan previamente. Es decir, que no valdría por ejemplo para ejemplo.com/imagenes/logo.png. La primera línea previene los directorios que ya existan con la bandera !-d y la segunda hace que se ignoren ficheros que ya existan con la bandera !-f.

Luego, en la regla de reescritura, tenemos una entrada compuesta por números, luego va un guión (/-) y luego una cadena que puede incluir letras en mayúsculas, en minúsculas, números y guiones (por lo que 34-lampara-verde cumpliría). La salida que ya conoce nuestro código PHP (aunque esto está oculto al usuario) es producto.php?id=$1, siendo $1 el valor que hemos atrapado entre los dos primeros paréntesis (en este caso, 34). Si observáis tenemos también atrapado un segundo grupo que es ([a-zA-Z0-9-]*) y que lo podríamos recuperar con $2, pero en este caso no nos sirve.

Esto es sólo el comienzo, pero toda la base está ahí. Otra manera alternativa de conseguir URL amigables es combinar un archivo .htaccess con PHP, pero eso sería materia de otro artículo. Algunas de las lecturas recomendadas a continuación sí indican cómo hacerlo.

funcion #php que limpia una cadena de texto quitando caracteres prohibidos para usar como url amigable by @baluart

Fuente: baluart.net

 
Hace una semana hice un cambio en Baluart, modifique la urls de nuestros artículos por unas mucho más amigables a los buscadores.

El efecto que esto provocó en Google fue enorme, el buscador empezó a pasearse como Pedro en su casa por el Weblog e indexó casi todo su contenido. Pasamos de tener unas 5,000 páginas indexadas a más de 12,000… no me pregunten ¿por qué?, pero fue a consecuencia del cambio (de esto no hay duda).

Otro efecto positivo (si el afán es el posicionamiento en buscadores), fue la mayor atracción de visitantes pasajeros (no es mi intención hablar de estadísticas, pero aproximadamente hubo un incremento del 10% al 20% de tráfico por Google).

Por todo esto, considero que una web que desee tener presencia en los principales buscadores debe utilizar urls amigables. Y para esto, tan sólo debes seguir estos 3 pasos:

1er Paso: Creando la función PHP: urls_amigables()

El objetivo de esta función es tomar el título de la noticia y transformarlo en una frase asequible a los buscadores.

El Proceso es como sigue:

La función php recibe la variable que contiene el título del artículo, inmediatamente transforma todo su contenido a minúsculas con la función strtolower(), luego haciendo uso de la función str_replace() le quitamos las tildes a las vocales y cambiamos la ñ por n (no es necesario hacerlo con las mayúsculas porque previamente las transformamos a minúsculas). Ahora, reemplazamos algunos símbolos y espacios en blanco con guiones y finalizamos eliminando todo carácter extraño que se nos escape con la función preg_replace().

En otra palabras:

<?php
function urls_amigables($url) {

// Tranformamos todo a minusculas

$url = strtolower($url);

//Rememplazamos caracteres especiales latinos

$find = array('á', 'é', 'í', 'ó', 'ú', 'ñ');

$repl = array('a', 'e', 'i', 'o', 'u', 'n');

$url = str_replace ($find, $repl, $url);

// Añaadimos los guiones

$find = array(' ', '&', '\r\n', '\n', '+'); 
$url = str_replace ($find, '-', $url);

// Eliminamos y Reemplazamos demás caracteres especiales

$find = array('/[^a-z0-9\-<>]/', '/[\-]+/', '/<[^>]*>/');

$repl = array('', '-', '');

$url = preg_replace ($find, $repl, $url);

return $url;

}
?>

2do paso: Cambiando las urls con Mod Rewrite de Apache

Para esto, se necesita tener acceso al archivo .HTACCESS en el directorio raíz de tu sitio web. Si lo tiene, escriba el siguiente código:

RewriteEngine on

Rewriterule ^articulo/(.+)/(.+) articulo.php?id =$1&title=$2

Con estas dos líneas indica que se reescriba la siguiente regla: Cuando se solicite esta url: articulo/(.+)/(.+) se mostrará el contenido de la página: articulo.php?id =$1&title=$2. Es decir, la variable $1 vendrá en el primer paréntesis, mientras la variable $2 vendrá en el segundo paréntesis.

Por ejemplo, cuando uno se dirije a la página articulo/933/esta-es-una-url-amigable, el servidor lo procesa como si se estuvieran enviando las variables la página articulo.php?id=933&title= esta-es-una-url-amigable.

3er paso: Cambiando los enlaces dinámicamente

Lo único que resta es llamar a la función urls_amigables() cada vez que mostremos un enlace. El contenido del título lo aplicamos a la función:

// La variable del título de la noticia 
$url = "Este es un título";

// mostramos el titulo editado 
// echo urls_amigables($url);

// mostramos la url terminada 
echo “http://tu.sitio.web/articulo/”.$id.”/”.urls_amigables($url).”/”;

Realmente rápido de programar, eficiente en su performance y eficaz en el posicionamiento. He buscado en la red, algún código que me evite hacer esta labor, pero no lo encontré. Me puse a programar y resultó esta función, que me parece muy flexible a la hora de reutilizarla en cualquier proyecto.

Así pues, con el código en sus manos… utilícenlo.