Solución 1:
Solución
Esto es lo que finalmente se me ocurrió después de que Miles Erickson me pusiera en la dirección correcta. Quería que la barra de direcciones reflejara el subdominio/dominio original de la solicitud y no el servidor y el puerto redirigidos, pero me puso en el camino correcto para buscar en Google una solución usando VirtualHost
y finalmente encontré una solución que incluía el uso de mod_proxy
.
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName dev.mydomain.com
ProxyPreserveHost On
# setup the proxy
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
ProxyPass / http://localhost:8888/
ProxyPassReverse / http://localhost:8888/
</VirtualHost>
Solución 2:
Ejecute la siguiente línea en la terminal (especifique su dominio y nombre de subdominio correctamente)
sudo nano /etc/apache2/sites-available/subdomain.example.com.conf
Pegue el siguiente código y cámbielo según sus requisitos
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName subdomain.example.com
ServerAlias subdomain.example.com
ProxyRequests Off
#ProxyPass / http://localhost:8080/
<Location />
ProxyPreserveHost On
ProxyPass http://example.com:8080/
ProxyPassReverse http://example.com:8080/
</Location>
# Uncomment the line below if your site uses SSL.
#SSLProxyEngine On
</VirtualHost>
Ejecute las siguientes líneas en la terminal (especifique correctamente su dominio y subdominio)
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2ensite subdomain.example.com.conf
sudo service apache2 restart
Solución 3:
Suponiendo que dev.mydomain.com se pueda resolver en la IP de mydomain.com, podría agregar lo siguiente a su httpd.conf:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName dev.mydomain.com
redirect / http://mydomain.com:8080/
</VirtualHost>
Documentación relevante de Apache:
- Guía para crear hosts virtuales basados en nombres
- Núcleo, incluidos VirtualHost y NameVirtualHost
- Redireccionar
Pregunta relacionada:Redirección de Apache basada en el nombre de host
(Nota:la versión original de esta respuesta sugirió incorrectamente el uso de RedirectMatch, que, como señaló amablemente @ChrisS, no puede analizar la parte del dominio de la URL).
Solución 4:
Agregue en su configuración principal de vhost las siguientes líneas:
ProxyPreserveHost On
ProxyPass / http://example.com:8080/
ProxyPassReverse / http://example:8080/
Tenga en cuenta que esto requiere mod_proxy en Apache.
Solución 5:
Estás buscando mod_rewrite. Aquí está el enlace a la documentación de Apache que incluye muchos ejemplos de configuraciones básicas y avanzadas.
Y si no puede interpretar la documentación usted mismo, intente agregar esto a httpd.conf:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^dev\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com:8080$1 [R=301]
Y si ese no es un ejemplo claro, aquí también hay un enlace a una guía para principiantes de mod_rewrite.