Solusi 1:
Solusi
Inilah yang akhirnya saya dapatkan setelah diarahkan ke arah yang benar oleh Miles Erickson. Saya ingin bilah alamat mencerminkan subdomain/domain asli dari permintaan dan bukan server dan porta yang dialihkan, tetapi dia menempatkan saya di jalur yang benar ke Google untuk mencari solusi menggunakan VirtualHost
dan saya akhirnya menemukan solusi yang menyertakan penggunaan 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>
Solusi 2:
Jalankan baris berikut di terminal (sebutkan nama domain dan subdomain Anda dengan benar)
sudo nano /etc/apache2/sites-available/subdomain.example.com.conf
Tempel kode berikut dan ubah sesuai kebutuhan Anda
<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>
Jalankan baris berikut di terminal (sebutkan nama domain dan subdomain Anda dengan benar)
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2ensite subdomain.example.com.conf
sudo service apache2 restart
Solusi 3:
Dengan asumsi bahwa dev.mydomain.com dapat diselesaikan ke IP mydomain.com, Anda dapat menambahkan yang berikut ke httpd.conf Anda:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName dev.mydomain.com
redirect / http://mydomain.com:8080/
</VirtualHost>
Dokumentasi Apache yang relevan:
- Panduan untuk membuat host virtual berbasis nama
- Inti, termasuk VirtualHost dan NameVirtualHost
- Pengalihan
Pertanyaan terkait:Pengalihan Apache berdasarkan nama host
(Catatan:versi asli dari jawaban ini salah menyarankan penggunaan RedirectMatch, yang, seperti yang ditunjukkan oleh @ChrisS, tidak dapat mengurai bagian domain dari URL.)
Solusi 4:
Tambahkan konfigurasi vhost utama Anda baris berikut:
ProxyPreserveHost On
ProxyPass / http://example.com:8080/
ProxyPassReverse / http://example:8080/
Perhatikan bahwa ini memerlukan mod_proxy di Apache.
Solusi 5:
Anda sedang mencari mod_rewrite. Berikut tautan ke dokumentasi Apache yang menyertakan banyak contoh untuk konfigurasi dasar dan lanjutan..
Dan jika Anda tidak dapat menafsirkan sendiri dokumentasinya, coba tambahkan ini ke httpd.conf:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^dev\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com:8080$1 [R=301]
Dan jika itu bukan contoh yang jelas, berikut juga tautan ke panduan pemula mod_rewrite.