RewriteBase variable en base al nombre del dominio

Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
El servidor WEB Apache ofrece un módulo el cual permite tener URL’s amigables, este es conocido como el mod_rewrite.Muchos de los frameworks basados en PHP hoy en día toman ventaja del mod_rewrite para construir su patrón URL tipo MVC (Modelo-Vistas-Controlador) por ejemplo: CodeIgniter, Zend Framework, CakePHP entre otros.Existe una configuración de este módulo el cual permite predefinir cual es el URL base en donde los archivos finales deben ser cargados, esta configuración es conocida como el RewriteBase. Una limitante es que solo se puede definir una sola vez en el .htaccess.Muchos desarrolladores utilizan diferentes servidores como parte del ciclo de vida del proyecto, por ejemplo un servidor para Desarrollo (DEV), otro para Pruebas (STAGE) y el final de producción (PROD). En muchas ocasiones la URL del proyecto puede variar en base a este servidor lo cual presenta un problema para el uso del mod_rewrite de apache.La solución: crear una variable que almacena la ruta por servidor y luego utilizar esta variable en la definición de la regla RewriteRule.Aquí les dejo con el código que puede utilizar para soportar diferentes RewriteBase en base al nombre del servidor. Esto debe estar en el .htaccess al mismo nivel del root del proyecto.
# Activation of the URL Rewriting
Options +FollowSymlinks
RewriteEngine On

# RewriteBase equivalent - Production
RewriteCond %{HTTP_HOST} ^www\.example\.com$
RewriteRule . - [E=REWRITEBASE:/]

# RewriteBase equivalent - Staging / Test Server
RewriteCond %{HTTP_HOST} ^stage\.example\.com$
RewriteRule . - [E=REWRITEBASE:/client/project/]

# RewriteBase equivalent - Local / Development
RewriteCond %{HTTP_HOST} ^localhost$
RewriteRule . - [E=REWRITEBASE:/client/project/website/v1/]

# Rewriting
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ %{ENV:REWRITEBASE}index.php?page=$1 [L]
Enlaces de referencia:
Entradas relacionadas
WordPress Linting Hero Image
Tips

WordPress Linting

El uso de linting nos ayuda a mantener el estándar en nuestro código fuente, forzando al programador o grupo de programadores a seguir ciertas reglas preestablecidas, unificando de esta manera la legibilidad del mismo.

Leer Más >>
ES6
WEB

Promesas ES6

Las promesas son objetos que retornan un valor en el futuro. Debido a la manera asíncrona que funciona JavaScript, se pueden seguir ejecutando el código sin necesidad de esperar que otro proceso termine.

Leer Más >>
Visual Studio Code Plugins
Tips

Visual Studio Code Plugins

Visual Studio Code es un editor de código fuente altamente configurable que puede ser instalado tanto para Windows como Linux y macOS. Dentro de sus características esta el soporte para control de versiones, diferentes herramientas de depuración e instalar plugins de terceros.

Leer Más >>

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *