サーバー上の新しいサイト用に新しい仮想ホストを設定しましたが、元のサイトとまったく同じ設定であるにもかかわらず、動作がおかしくなります。
簡単に言えば、すべてのリクエストを HTTPS にリダイレクトしたいのです。メイン サイト (動作中のサイト) では、これを設定で指定しVirtualHost
、 では.htaccess
短縮 URL を許可する追加ルールを指定しています。具体的には、動作していないサイトでの問題は、 にアクセスしようとすると、example.com/url
リダイレクトが にアクセスし、 URL からhttps://example.comurl
必要なものが削除されることです。/
VirtualHost
動作中のサイトから新しいファイルに正確な設定をコピーしたので.htaccess
、新しいサイトで動作しない理由がよくわかりません。両方のサイトの DNS レコードはすべて A レコードを使用してポイントしており、DNS レベルでリダイレクトや何かは発生していません。以下のコードの/
行末にを入れてみましたRedirect
が、問題は解決しませんでした。サーバーは Ubuntu 14.04 で、Apache はバージョン 2.4.7 です。両方のサイトは別々のドメイン名で別々の.conf
ファイルを使用していますが、同じ IP アドレスを持つ同じサーバー上でホストされています。この問題を修正するにはどうすればよいですか?
関連するコードVirtualHost
:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
Redirect permanent / https://example.com
</VirtualHost>
そして.htaccess
:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule !.*\.html$ %{REQUEST_FILENAME}.html [L]
役に立つ/重要な場合に備えて、これは私の VirtualHost ファイル内の SSL 構成ですが、他のすべてのディレクティブの外側のファイルの先頭に配置されています。
SSLCipherSuite AES128+EECDH:AES128+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubdo$
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
SSLCompression off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
VirtualHost
これは、サイト専用の設定です。
<VirtualHost *:443>
ServerName example.com
ServerAdmin [email protected]
DocumentRoot /var/www/example
ErrorLog ${APACHE_LOG_DIR}/errorexample.log
Options -Indexes
SSLEngine on
SSLCertificateFile /etc/ssl/example/examplecert.crt
SSLCertificateKeyFile /etc/ssl/example/examplekey.key
SSLCertificateChainFile /etc/ssl/chain/class1.pem
</VirtualHost>
答え1
HTTPS にリダイレクトするには:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
ただし、SSL 用の仮想ホストが必要です。
NameVirtualHost *:443
<VirtualHost *:443>
ServerName example.com
ServerAlias www.example.com
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
</VirtualHost>
注記:SSL証明書を作成する必要がありますが、素晴らしいチュートリアルこのために!