Implementación
Añade el siguiente código a tu bootstrap/aplicación.php
archivo, antes de la declaración de retorno:
$envFile = '.env';
if (isset($_SERVER['HTTP_HOST']) && str_contains($_SERVER['HTTP_HOST'], 'alternativehost.test')) {
$envFile = '.env.althost';
}
¿Quieres que funcione también con php Artisan en directorios con enlaces simbólicos?
if (isset($_SERVER['PWD']) && str_contains($_SERVER['PWD'], '/alternativehost')) {
$envFile = '.env.althost';
}
Esto puede ser peligroso. Consulta las advertencias a continuación.
Cómo funciona
El código comprueba dos condiciones:
- Primero, verifica si el host HTTP contiene el dominio especificado (método más seguro)
- En segundo lugar, verifica la ruta del directorio de trabajo (un enfoque más riesgoso, pero útil para operaciones CLI).
⚠️ Notas importantes
- La segunda condición que se utiliza
Personas con discapacidad
Es más riesgoso ya que depende de la estructura del directorio y podría necesitar medidas de seguridad adicionales. - Asegúrese siempre de que sus archivos .env alternativos estén incluidos en su
.gitignore
- Recuerde borrar el caché de configuración después de realizar cambios:
configuración php artisan:clear
Mejores prácticas
- Mantenga sus archivos .env seguros y nunca los envíe al control de versiones
- Utilice nombres descriptivos para sus archivos .env alternativos
- Documente las diferencias ambientales para su equipo
- Considere utilizar la detección de entorno incorporada de Laravel cuando sea posible