Necesito una variable de entorno %{HTTP_HOST} sin el puerto.

Tengo un servidor de desarrollo por debajo del puerto 8080 y un servidor de producción por debajo de 80.

Esta regla falla en dev porque %{HTTP_HOST} en el servidor de desarrollo es, por ejemplo: myhost.com:8080

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{DOCUMENT_ROOT}/cache/%{HTTP_HOST}/%{REQUEST_URI}/index.html -f
RewriteRule ^(.*) "/cache/%{HTTP_HOST}/%{REQUEST_URI}/index.html" [L]
</IfModule>

¿Hay alguna forma de hacer HTTP_HOST sin el puerto?

0
Simone Nigro 5 oct. 2019 a las 08:51

1 respuesta

La mejor respuesta

Claro, simplemente puede analizar el host real a partir de la combinación de host y puerto:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ([^:]+)
RewriteCond %{DOCUMENT_ROOT}/cache/%1/%{REQUEST_URI}/index.html -f
RewriteRule ^(.*) "/cache/%{1}/%{REQUEST_URI}/index.html" [L]
2
arkascha 5 oct. 2019 a las 09:03