RewriteBase variable en base al nombre del dominio

Facebook
Twitter
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:
Te podría interesar
Tips

WEB y HTML Semántico

Las etiquetas HTML son las encargadas de darle formato a nuestro contenido WEB, con ellas podemos definir como se debe mostrar un determinado texto, si es un título o un párrafo, si debe tener énfasis entre otras.

Leer Más >>
Tecnología

WEB y NodeJS

NodeJS es un framework que te permite desarrollar todo tipo de aplicaciones, basado en Javascript y se ejecuta sobre el motor Chrome’s V8.

Leer Más >>
Tecnología

Team Chat

En el desarrollo de un proyecto existen distintas herramientas que nos permiten realizar una tarea específica, como integración continua (CI); repositorios distribuidos; administración de tareas, todas estas herramientas pueden coexistir en un solo proyecto lo cual ha llevado los clientes de Chat desarrollar integraciones con cada una de ellas ofreciendo así una manera sencilla de que todos los involucrados en el proyectos pueden estar al tanto de lo que está sucediendo.

Leer Más >>

Deja una respuesta

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