Cargando

Ir a contenido

X


Ver Más! Profesionales IT y desarrolladores: Llega el evento más importante del año! Servicios cloud, Business Applications, Analytics, IoT, Machine Learning, Bots, Blockchain etc.


 


Posicionamiento Seo desde PHP y Apache

En este tutorial aprenderemos como realizar URL amigables en PHP, para que nuestro software nos devuelva la URL SEO en base al titulo.


Escrito por jun 13 2013 10:20


Una parte importante de las técnicas SEO son las URLs amigables se caracterizan por ser faciles de recordar para el usuario, descriptivas acerca del contenido de la web y fáciles de escribir.

En este tutorial aprenderemos como realizar URL amigables en PHP, para que nuestro software nos devuelva la URL SEO en base al titulo.

Para ello crearemos una función PHP que se encargara de traducir una frase que puede ser tomada de una base de datos o introducida en un formulario y convertirla en una url amigable para los buscadores.

La función será:


Imagen enviada


Esta función recorre la frase carácter a carácter y reemplaza aquellos que puedan ser no legibles para los navegadores.

Ejemplo de conversión url:


<? $titulo='inscripción para la competencia';
$url = getUrlAmigable(utf8_decode($titulo)); ?>

<a href=”www.midominio.com/<?= $url?>” /><?=$titulo ?></a>
La url sera
<a href=”www.midominio.com/inscripcion-para-la-competencia”/>inscripción para la competencia</a>


Aquí puedes ver un ejemplo de como seria para twitter y diferentes url amigables

Imagen enviada


Cuando tengamos el código de conversión funcionando necesitamos crear un fichero que se comunicara con el servidor Apache y permita a la web entender nuestras url amigables.

Creamos un archivo simple de texto que se denominara .htaccess en el directorio principal de la web donde este nuestro fichero index.php.

En el fichero .htacess escribimos el siguiente codigo:

# Permitir reescribir url
RewriteEngine On
# La URL es para .htaccess y no es un directorio
RewriteBase /
# La url es ficticia no es un fichero existente en el servidor.
RewriteCond %{REQUEST_FILENAME} !-f
# La url es ficticia no es un directorio existente en el servidor.
RewriteCond %{REQUEST_FILENAME} !-d
# Sino no es un fichero existente y no es un directorio. Accedo al index.php y asigno la url amigable como una variable
RewriteRule ^([a-zA-Z0-9_-]+)$ index.php?seccion=$1

Finalmente en el fichero index.php leo esa variable que me envía secretamente el .htacess

Imagen enviada


Un tema importante es la seguridad con este método ya que alguien podría intentar inyectar código a través de index.php?seccion='pagina-malicionsa', para evitar esto creamos un registro de ficheros validos a los que se puede acceder es decir ficheros físicos en el servidor.

Para ello definimos un luego de $seccion=$_GETseccion'], una matriz que contendrá los nombres de los ficheros en el servidor.

<? $lista_secciones = array ("usuarios","login","ayuda","productos","index"); ?>


Así si alguien intenta acceder a una url no valida sera redirigido a una pagina error o si no ha seleccionado ninguna url por defecto ira a una pagina denominada home.php.

También podemos utilizarlo para ir a distintas secciones de la web por ejemplo

URL <a href=”vendo-casa-en-barcelona-im100”>Vendo casa en barcelona</a>

En el .htaccess puedo poner la siguiente regla

#Si la dirección contiene "im" se ejecuta el RewriteRule que habría debajo
RewriteCond %{REQUEST_URI} im-
Rewriterule ^(.+).php ./index.php?seccion=inmuebles&cod=$1

de esta forma estaria pasando como variable el titulo y el código de la casa para luego procesar por base de datos

<a href=”listado-CL50”>Vendo casa en Barcelona</a>

#Si la dirección contiene "CL" se ejecuta el RewriteRule que habría debajo
RewriteCond %{REQUEST_URI} CL
-
Rewriterule ^(.+) ./index.php?seccion=listarclientes&limite=$1

Aquí podría ser listar cliente para el numero 50 o el cliente 50 según la tarea que deseamos realizar luego en nuestra base de datos. Los valores de las variables lo leeremos en el index.php con $GET, es decir para el ultimo caso seria $GET['limite']
¿Te ha gustado y ayudado este Tutorial?
Puedes premiar al autor pulsando este botón para darle un punto positivo
  • -
  • 0


AYUDA A MEJORAR ESTE TUTORIAL!

¿Quieres ayudarnos a mejorar este tutorial más? Puedes enviar tu Revisión con los cambios que considere útiles. Ya hay 0 usuario que han contribuido en este tutorial al enviar sus Revisiones. ¡Puedes ser el próximo!


Tutoriales Relacionados



3 Comentarios


Cesar Ortiz
jun 13 2013 10:21
Fenomenelmente explicado. Muchas gracias por compartirlo. Enhorabuena es un Tutorial Pro.

Ernesto Viu
jun 13 2013 12:04
Arrrgh no soy Pro para poder verlo...

Miguel Guerrero
jun 13 2013 12:05

Arrrgh no soy Pro para poder verlo...


Ánimo Ernesto, que veo que sólo te quedan 4 puntos de reputación para llegar a 10, con un tuto decente que envíes o ayudes en preguntas de otros usuarios estás dentro ;)
No esperes más y entra en Solvetic
Deja tus comentarios y aprovecha las ventajas de la cuenta de usuario ¡Únete!
10
VOTA
5
100%
4
0%
3
0%
2
0%
1
0%

  Información

  •   Publicado jun 13 2013 10:20
  •   Visitas 1.5K