GNU/Linux >> Linux の 問題 >  >> Linux

サブドメインを同じサーバーの別のポートにリダイレクトするにはどうすればよいですか?

解決策 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 ドキュメント:

<オール>
  • 名前ベースの仮想ホストの作成ガイド
  • VirtualHost と NameVirtualHost を含むコア
  • リダイレクト
  • 関連する質問:ホスト名に基づく 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 初心者向けガイドへのリンクもあります。


    Linux
    1. .htaccessを使用してhttpをhttpsにリダイレクトする方法は?

    2. 同じ引数で別のコマンドを実行するにはどうすればよいですか?

    3. 同じネットワーク内のある IP から別の IP へのポート転送を行うにはどうすればよいですか?

    1. Ubuntu 7.04サーバー(「完璧なセットアップ」+ ISPConfig)をUbuntu7.10にアップグレードする方法

    2. スクリプトの同じ行で stderr と stdout を別のファイルにリダイレクトする方法は?

    3. EPEL から同じマシンに 2 つの異なるバージョンの Java をインストールするにはどうすればよいですか?

    1. system() の出力をファイルにリダイレクトする方法は?

    2. LinuxでTomcatサーバーを起動するには?

    3. OS に応じて同じマシンに異なる静的 IP アドレスを割り当てる方法は?