El mod_rewrite es un módulo de Apache que utiliza un motor de reescritura basado en reglas. Se utiliza para traducir y redirigir la URL solicitada a una nueva URL. Permite cambiar una URL de forma dinámica. Entonces, el visitante nunca ve el cambio de URL en la barra de direcciones. Con mod_rewrite, puede reescribir un número ilimitado de reglas. Esto le permitirá reescribir la URL en función de las variables de entorno, los encabezados HTTP y las variables del servidor.
En esta publicación, mostraremos cómo usar mod_rewrite para reescribir la URL de Apache en Ubuntu VPS.
Requisitos
- Ubuntu 20.04 VPS (usaremos nuestro plan NVMe 2 VPS)
- Acceso a la cuenta de usuario root (o acceso a una cuenta de administrador con privilegios de root)
Paso 1:Inicie sesión en el servidor y actualice los paquetes del sistema operativo del servidor
Primero, inicie sesión en su servidor Ubuntu 20.04 a través de SSH como usuario raíz:
ssh root@IP_Address -p Port_number
Debe reemplazar 'IP_Address' y 'Port_number' con la dirección IP y el número de puerto SSH respectivos de su servidor. Además, debe reemplazar 'root' con el nombre de usuario de la cuenta de administrador si es necesario.
Antes de comenzar la instalación, debemos asegurarnos de que todos los paquetes del sistema operativo Ubuntu instalados en el servidor estén actualizados. Puede hacerlo ejecutando los siguientes comandos:
apt-get update -y apt-get upgrade -y
Paso 2:Instalar el servidor web Apache
Antes de comenzar, asegúrese de que el paquete del servidor web Apache esté instalado en su sistema. Si no está instalado, puede instalarlo con el siguiente comando:
apt-get install apache2 -y
Una vez que el paquete esté instalado, inicie el servicio Apache con el siguiente comando:
systemctl start apache2
A continuación, abra su navegador web y escriba la URL http://your-server-ip para verificar el servidor web Apache. Si todo está bien, debería ver la página de prueba de Apache:
Paso 3:habilitar mod_rewrite
De forma predeterminada, el módulo mod_rewrite se instala con el paquete Apache pero está deshabilitado. Por lo tanto, deberá habilitarlo primero.
Puede habilitarlo con el siguiente comando:
a2enmod rewrite
A continuación, reinicie el servicio Apache para aplicar los cambios.
A continuación, verifique el módulo mod_rewrite de Apache con el siguiente comando:
apache2ctl -M | grep rewrite_module
Deberías obtener el siguiente resultado:
rewrite_module (shared)
Paso 4:habilitar archivos .htaccess
Puede configurar reglas de reescritura directamente en el archivo de configuración principal de Apache. Sin embargo, se recomienda escribir reglas en el archivo .htaccess dentro de cada sitio web.
Por defecto, Apache no permite usar el archivo .htaccess. Por lo tanto, deberá habilitar el archivo .htaccess en su archivo de configuración de host virtual predeterminado.
Para hacerlo, edite el archivo de configuración de host virtual predeterminado de Apache:
nano /etc/apache2/sites-available/000-default.conf
Agregue las siguientes líneas antes de la línea:
<Directory /var/www/html> Options Indexes FollowSymLinks MultiViews AllowOverride All Require all granted </Directory>
Asegúrese de guardar y cerrar el archivo y luego reinicie el servicio Apache para aplicar los cambios:
systemctl restart apache2
Paso 5:Configurar reescrituras de URL
Para comprender cómo funcionan las reescrituras de URL, crearemos una página home.html en el directorio raíz del documento de Apache. Luego configuraremos una reescritura de URL básica que permitirá acceder a la página http://your-server-ip/home y convertirla a la ruta de la página real http://your-server-ip/home.html.
Primero, creemos una página home.html:
nano /var/www/html/home.html
Agregue los siguientes contenidos:
<html> <head> <title>Home</title> </head> <body> <h1>Home Page</h1> <h2>This is my home page</h2> </body> </html>
Guarde y cierre el archivo cuando haya terminado.
A continuación, cree un archivo .htaccess dentro del directorio raíz de documentos predeterminado del sitio web para probar mod_rewrite.
nano /var/www/html/.htaccess
Primero, agregue la siguiente línea para habilitar el motor de reescritura:
RewriteEngine on
A continuación, agregue la siguiente regla de reescritura que redirige a los visitantes a home.html si solicitan la página http://your-server-ip/home.
RewriteRule ^home$ home.html [NC]
Guarde y cierre el archivo cuando haya terminado.
A continuación se muestra una breve explicación de la sintaxis de la regla de reescritura:
^ Esto coincidirá con cualquier texto después de la dirección IP del servidor.- $ Esto indicará el final de la URL.
- casa Esto coincidirá con la cadena real de inicio
- inicio.html Esto definirá el archivo real al que accede el visitante.
- [NC] Esto hará que la regla no distinga entre mayúsculas y minúsculas.
Ahora puede visitar la página de inicio en http://your-server-ip/home en su navegador web. Apache redirigirá a la página home.html como se muestra a continuación:
Por supuesto, no tiene que hacer nada de esto si utiliza uno de nuestros servicios de alojamiento VPS de Linux, en cuyo caso simplemente puede pedirle a nuestros administradores expertos de Linux que lo configuren por usted. Están disponibles las 24 horas del día, los 7 días de la semana y atenderán su solicitud de inmediato.
PD. Si te gustó esta publicación, compártela con tus amigos en las redes sociales usando los botones de la izquierda o simplemente deja una respuesta a continuación. Gracias.