Soluzione 1:
Soluzione
Ecco cosa mi è finalmente venuto in mente dopo essere stato indirizzato nella giusta direzione da Miles Erickson. Volevo che la barra degli indirizzi riflettesse il sottodominio/dominio originale della richiesta e non il server e la porta reindirizzati, ma mi ha messo sulla strada giusta per cercare su Google una soluzione utilizzando VirtualHost
e finalmente ho trovato una soluzione che includeva l'uso di 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>
Soluzione 2:
Esegui la seguente riga sul terminale (specifica correttamente il nome del dominio e del sottodominio)
sudo nano /etc/apache2/sites-available/subdomain.example.com.conf
Incolla il seguente codice e modificalo come richiesto
<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>
Esegui le seguenti righe sul terminale (specifica correttamente il nome del dominio e del sottodominio)
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2ensite subdomain.example.com.conf
sudo service apache2 restart
Soluzione 3:
Supponendo che dev.mydomain.com possa essere risolto nell'IP di mydomain.com, puoi aggiungere quanto segue al tuo httpd.conf:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName dev.mydomain.com
redirect / http://mydomain.com:8080/
</VirtualHost>
Documentazione Apache rilevante:
- Guida alla creazione di host virtuali basati su nome
- Core, inclusi VirtualHost e NameVirtualHost
- Reindirizzamento
Domanda correlata:Reindirizzamento Apache basato sul nome host
(Nota:la versione originale di questa risposta suggeriva erroneamente l'uso di RedirectMatch, che, come ha sottolineato utilmente @ChrisS, non può analizzare la parte del dominio dell'URL.)
Soluzione 4:
Aggiungi nella tua configurazione principale del vhost le seguenti righe:
ProxyPreserveHost On
ProxyPass / http://example.com:8080/
ProxyPassReverse / http://example:8080/
Nota che questo richiede mod_proxy su Apache.
Soluzione 5:
Stai cercando mod_rewrite. Ecco il link alla documentazione di Apache che include molti esempi per configurazioni di base e avanzate..
E se non sei in grado di interpretare la documentazione da solo, prova ad aggiungere questo a httpd.conf:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^dev\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com:8080$1 [R=301]
E se questo non è un chiaro esempio, ecco anche un link a una guida per principianti di mod_rewrite.