1

タイトルが長くて申し訳ありませんが、他に何を入れればいいのかわかりません。私の問題はまさにそれです。www.mydomain.com と入力すると、正しいページが表示されます。IP XXX.XX.XXX.XX と入力すると、Apache のデフォルト ページが表示されます。

私のVirtualHostファイルは次のとおりです。

    NameVirtualHost *:443

    <VirtualHost *:443>

    ServerAdmin myname@mydomain.com
    DocumentRoot /home/user/site/rails-webpage/public

    SSLEngine on
    SSLCertificateFile /home/user/doc/www_desmangeo_it.crt
    SSLCertificateKeyFile /home/user/doc/desmangeo.key
    SSLCertificateChainFile /home/user/doc/AddTrustExternalCARoot.crt

    <Directory /home/user/site/rails-webpage/public>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>


    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.

    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    </VirtualHost>

Ray からのコメントのおかげで、https を使用して IP リクエストを行うと、正しいページに到達することに気付きました。したがって、「ポート 80 でビューをリダイレクト」していないようです。つまり、ポート 80 を使用して実行しようとすると、SSL エラーが発生しました。したがって、ポート 443 を使用する必要があります。サーバーにポート 443 に「切り替える」ように指示するにはどうすればよいですか?

[編集]だから私は書き換えモジュールをロードしました

    sudo a2enmod rewrite

と追加

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

私の仮想ホストがあるファイルの先頭に。何もない。

4

1 に答える 1

0

仮想ホスト ファイルは、ポート 443 -- https でのみ一致するように見えます。ポスト 80 でリッスンする 2 番目のものを作成する必要があります。この 2 番目のものには、宣言のポート 443 (または証明書の詳細) 以外のすべて同じ情報が含まれます。

Apache のデフォルト設定では、すべてのポート 80 リクエストをキャッチします。

変更する必要がある宣言ブロックは次のとおりです。

    <VirtualHost *:80>

      #.... details here

    </VirtualHost>

[編集]これはうまくいきました:

    <VirtualHost xxx.xx.xx.xxx:80>
            redirect / www.mysite.com
    </VirtualHost>
于 2013-01-21T17:41:26.680 に答える