解決策 1:
解決策
これが、マイルズ・エリクソンによって正しい方向に設定された後、私が最終的に思いついたものです.リダイレクトされたサーバーとポートではなく、リクエストの元のサブドメイン/ドメインをアドレスバーに反映させたかったのですが、彼は VirtualHost
を使用して Google への正しい道を示してくれました そして、最終的に 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>
解決策 2:
ターミナルで次の行を実行します (ドメインとサブドメイン名を正しく指定してください)
sudo nano /etc/apache2/sites-available/subdomain.example.com.conf
次のコードを貼り付けて、必要に応じて変更してください
<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>
ターミナルで次の行を実行します (ドメインとサブドメイン名を正しく指定してください)
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2ensite subdomain.example.com.conf
sudo service apache2 restart
解決策 3:
dev.mydomain.com を mydomain.com の IP に解決できると仮定すると、httpd.conf に以下を追加できます:
NameVirtualHost *:80
<VirtualHost *:80>
ServerName dev.mydomain.com
redirect / http://mydomain.com:8080/
</VirtualHost>
関連する Apache ドキュメント:
<オール>関連する質問:ホスト名に基づく Apache リダイレクト
(注:この回答の元のバージョンでは、@ChrisS が有益に指摘したように、URL のドメイン部分を解析できない RedirectMatch の使用が誤って提案されていました。)
解決策 4:
メインの vhost 構成に次の行を追加します:
ProxyPreserveHost On
ProxyPass / http://example.com:8080/
ProxyPassReverse / http://example:8080/
これには Apache の mod_proxy が必要であることに注意してください。
解決策 5:
mod_rewrite を探しています。これは、基本構成と高度な構成の多くの例を含む Apache のドキュメントへのリンクです..
ドキュメントを自分で解釈できない場合は、これを httpd.conf に追加してみてください:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^dev\.example\.com$ [NC]
RewriteRule ^(.*)$ http://example.com:8080$1 [R=301]
これが明確な例でない場合は、mod_rewrite 初心者向けガイドへのリンクもあります。