Lösung 1:
Lösung
Hier ist, was ich schließlich herausgefunden habe, nachdem ich von Miles Erickson in die richtige Richtung gelenkt worden war. Ich wollte, dass die Adressleiste die ursprüngliche Subdomain/Domain der Anfrage widerspiegelt und nicht den umgeleiteten Server und Port, aber er brachte mich auf den richtigen Weg, um mit VirtualHost
eine Lösung von Google zu finden und ich habe schließlich eine Lösung gefunden, die die Verwendung von mod_proxy
beinhaltete .
<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>
Lösung 2:
Führen Sie die folgende Zeile auf dem Terminal aus (geben Sie Ihren Domänen- und Subdomänennamen korrekt an)
sudo nano /etc/apache2/sites-available/subdomain.example.com.conf
Fügen Sie den folgenden Code ein und ändern Sie ihn entsprechend Ihrer Anforderung
<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>
Führen Sie die folgenden Zeilen auf dem Terminal aus (geben Sie Ihren Domänen- und Subdomänennamen korrekt an)
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2ensite subdomain.example.com.conf
sudo service apache2 restart
Lösung 3:
Unter der Annahme, dass dev.mydomain.com in die IP von mydomain.com aufgelöst werden kann, könnten Sie Folgendes zu Ihrer httpd.conf hinzufügen:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName dev.mydomain.com
redirect / http://mydomain.com:8080/
</VirtualHost>
Relevante Apache-Dokumentation:
- Anleitung zum Erstellen namensbasierter virtueller Hosts
- Kern, einschließlich VirtualHost und NameVirtualHost
- Weiterleitung
Verwandte Frage:Apache-Umleitung basierend auf Hostname
(Hinweis:Die Originalversion dieser Antwort schlug fälschlicherweise die Verwendung von RedirectMatch vor, das, wie @ChrisS hilfreich darauf hingewiesen hat, den Domänenteil der URL nicht analysieren kann.)
Lösung 4:
Fügen Sie in Ihrer Haupt-vhost-Konfiguration die folgenden Zeilen hinzu:
ProxyPreserveHost On
ProxyPass / http://example.com:8080/
ProxyPassReverse / http://example:8080/
Beachten Sie, dass dies mod_proxy auf Apache erfordert.
Lösung 5:
Sie suchen nach mod_rewrite. Hier ist der Link zur Apache-Dokumentation, die viele Beispiele für grundlegende und erweiterte Konfigurationen enthält..
Und wenn Sie die Dokumentation nicht selbst interpretieren können, versuchen Sie, dies zu httpd.conf:
hinzuzufügenRewriteEngine on
RewriteCond %{HTTP_HOST} ^dev\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com:8080$1 [R=301]
Und wenn das kein klares Beispiel ist, hier ist auch ein Link zu einem mod_rewrite-Anfängerleitfaden.