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:
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 >>
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 >>

Deja una respuesta

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