Cuando desarrollamos proyectos en PHP, debemos conjugar un conjunto de conocimientos y dominar una serie de técnicas relacionadas. Manejar las rutas es esencial para organizar archivos y lograr un código sólido. Esto también favorece el mantenimiento eficiente del proyecto.
PHP es un lenguaje con características integradas para el manejo de rutas y archivos. Si partimos de lo más básico, con HTML podemos manejar enlaces internos y externos. Mediante PHP sumamos la posibilidad inclusión de archivos y recursos con programación. Además tenemos control de errores y otras funciones avanzadas.
En este artículo explicaré diferentes técnicas para manejar rutas desde HTML y PHP. Mostraré ejemplos sobre cómo utilizar correctamente las diferentes variantes . Veremos cómo referenciar los diferentes archivos ubicados en nuestro servidor. Además, compartiré algunas prácticas recomendadas para la gestión de rutas en proyectos modernos.

Enlaces internos y externos en PHP
Un enlace interno es un vínculo que dirige a una página o recurso dentro de nuestro propio sitio web. Para crear un enlace interno en PHP, debemos asegurarnos de que la ruta sea correcta y relativa a la estructura del proyecto. En su estructura básica lo podemos declarar con código HTML puro.
Ejemplo de enlace interno:
<a href="/about-us.php">Sobre Nosotros</a>
En este ejemplo, /about-us.php
apunta a la página «Sobre Nosotros». Si estamos en un proyecto donde las páginas están en subdirectorios, podemos usar rutas relativas:
<a href="./contact.php">Contacto</a>
Aquí ./
indica que el archivo contact.php
está en el mismo directorio que el archivo actual.
Un enlace externo dirige a una página fuera de nuestro sitio web. Estos enlaces requieren la URL completa. Para este caso también podemos recurrir a un código HTML puro.
Ejemplo de enlace externo:
<a href="https://www.ejemplo.com">Visitar Ejemplo</a>
Como podemos apreciar estos ejemplos de enlaces internos se emplean de la misma manera que lo hacemos con HTML, utilizando la etiqueta <a>
y el atributo href
.
Diferencias entre ./
y ../
Para gestionar las rutas en PHP, es importante comprender las diferencias entre ./
y ../
. A continuación veremos para que se utiliza cada caso:
./
se refiere al directorio actual en el que se encuentra el archivo. Es útil para rutas relativas dentro del mismo nivel.../
permite referenciar al directorio superior o padre. Si queremos navegar un nivel hacia arriba en nuestra estructura de directorios, usamos../
Ejemplos:
./archivo.php
significa que el archivoarchivo.php
está en el mismo directorio que el archivo actual.../archivo.php
significa que el archivoarchivo.php
está en el directorio superior al archivo actual.
Ejemplo práctico
📁 Estructura de archivos. Supongamos que tenemos la siguiente estructura de directorios y archivos:
/proyecto /includes header.php /ejemplos ejemplo1.php index.php about.php
✅ Incluir un archivo desde la raíz. Si queremos incluir header.php
en index.php
, ubicado en la raíz del proyecto, podemos hacerlo con:
<?php include './includes/header.php'; ?>
O, simplemente:
<?php include 'includes/header.php'; ?>
Ambos funcionarán correctamente porque index.php
está en la raíz del proyecto.
✅ Incluir un archivo desde un subdirectorio. Si estamos en un subdirectorio, por ejemplo en proyecto/ejemplos/ejemplo1.php
, necesitamos salir de esa carpeta para acceder a includes/header.php
.
Para hacerlo, utilizamos ../
para subir un nivel en la estructura de directorios:
<?php include '../includes/header.php'; ?>
Si estuviéramos dentro de otro subdirectorio más profundo (/proyecto/ejemplos/test/ejemplo2.php
), necesitaríamos subir dos niveles:
<?php include '../../includes/header.php'; ?>
Si el archivo no se encuentra
Si el header.php
no está en la ubicación esperada, PHP generará un Warning. Podremos recurrir a file_exists()
para verificar antes de incluirlo. A continuación veremos el código para emplear esta función de verificación:
$file = '../includes/header.php'; if (file_exists($file)) { include $file; } else { echo 'Error: Archivo no encontrado.'; }
Vale decir que este ejemplo es útil para ejercicios, pero en proyectos reales deberíamos optar por una solución alternativa para el caso de el else
.
Referenciar imágenes
Para insertar imágenes en un sitio web usando PHP, la referencia de rutas es similar a los enlaces. Si la imagen está en el mismo directorio, podemos usar ./
, pero si está en un directorio superior o diferente, usaremos rutas relativas.
Si tenemos una imagen en un directorio img/
, referenciarías así:
<img src="./img/logo.png" alt="Logo">
Si el archivo PHP está en un subdirectorio, necesitaríamos usar ../
para subir un nivel:
<img src="../img/logo.png" alt="Logo">
Uso de include()
y require()
y las rutas
En PHP, podemos usar include()
o require()
para insertar archivos de otras partes del proyecto. La diferencia entre estos dos es que require()
detiene la ejecución del script si no puede incluir el archivo, mientras que include()
solo lanza una advertencia y sigue ejecutando el script.
Ejemplo de include()
:
<?php include './includes/header.php'; ?>
Esto incluirá el archivo header.php
desde el directorio includes
. Si la ruta no es válida, PHP solo mostrará una advertencia, pero el script seguirá ejecutándose.
Ejemplo de require()
:
<?php require './includes/config.php'; ?>
Si config.php
no se encuentra, el script lanzará un error fatal y dejará de ejecutarse.
Opciones avanzadas para manejar rutas en PHP
A medida que los proyectos crecen en complejidad, manejar rutas de forma eficiente se vuelve crucial. Aquí algunas técnicas más sofisticadas para gestionar rutas en proyectos más grandes:
Uso de constantes globales como __DIR__
y __FILE__
PHP proporciona constantes mágicas como __DIR__
y __FILE__
que son muy útiles para manejar rutas. __DIR__
devuelve el directorio actual, mientras que __FILE__
devuelve la ruta completa al archivo.
Ejemplo de código:
<?php include __DIR__ . '/includes/header.php'; ?>
Esto permite que la ruta funcione correctamente sin importar desde qué archivo se llame.
Rutas absolutas y relativas
Las rutas absolutas son aquellas que incluyen la ruta completa desde la raíz del sistema de archivos o desde el dominio del servidor. Según las características de los proyectos se puede optar por rutas absolutas del servidor.
Ejemplo de ruta absoluta referenciada a una carpeta del servidor:
<?php $cabecera= '/var/www/html/proyecto/includes/header.php'; ?>
Cabe aclarar que esa ruta es un ejemplo y según el sistema operativo y la configuración de cada servidor puede variar.
En proyectos alojados en servidores remotos, podríamos utilizar rutas absolutas basadas en la URL del dominio.
Manejo de rutas en frameworks PHP (Laravel, Symfony)
Los frameworks modernos de PHP, como Laravel y Symfony, ofrecen sistemas avanzados para manejar rutas de manera eficiente. Estos frameworks permiten definir rutas en archivos específicos, facilitando la organización del proyecto.
La información sobre como trabajar con rutas con Laravel 12 está disponible en la documentación: https://laravel.com/docs/12.x/routing#basic-routing.
Por su parte, Symfony pone a disposición la siguiente documentación sobre Routing: https://symfony.com/doc/current/routing.html.
En ambos casos se recomienda consultar la documentación actualizada a la versión que estemos usando de estos frameworks.
Autoloading de clases y archivos
PHP 8 mejora el soporte para el autoloading de clases mediante Composer
. Podemos configurar un autoloader para cargar automáticamente las clases y archivos necesarios, sin necesidad de hacer include()
manualmente.
Esto nos permite estructurar el proyecto de manera modular, y las clases se cargarán automáticamente cuando sean necesarias.
En conclusión
Manejar las rutas en PHP de manera eficiente es esencial para cualquier proyecto de tamaño considerable. A partir de PHP 8, contamos con características y técnicas modernas que nos permiten no solo gestionar mejor las rutas, sino también escribir código más limpio y organizado.
Ya sea que estemos referenciando archivos, imágenes, o construyendo proyectos más complejos con autoloading o frameworks específicos, tener un buen dominio de las rutas ayuda a controlar el correcto funcionamiento de la aplicación y mejorar su mantenibilidad.
Para obtener la versión más reciente de PHP y consultar la documentación oficial: https://www.php.net/.
Si te interesa saber más sobre PHP déjame un comentario o escríbeme un mensaje.
Más sobre Diseño y desarrollo Web
Deja una respuesta