質問: httpからhttpsへの適切なapacheリダイレクト サーバーの新しいサイトに新しい仮想ホストを設定しましたが、元のサイトとまったく同じ設定をしているにもかかわらず、奇妙な動作をしています。簡単に言えば、すべてのリクエストをhttpsにリダイレクトしたいのです。私のメインサイト(作業サイト)では、これをvirtualhost configで指定し、.htaccessで短縮urlを許可するように指定した追加のルールがあります。具体的には、機能していないサイトの問題は、example.com/urlに移動しようとすると、リダイレクトがhttps://example.comurlに移動し、urlから必要な/が削除されることです。正確な構成を作業サイトから新しいvirtualhostおよび.htaccessファイルにコピーしたので、なぜ新しいサイトで機能しないのかわかりません。両方のサイトの私のdnsレコードはすべて、それを指すためにaレコードを使用しており、リダイレクトなどはdnsレベルでは発生しません。以下のコードのredirect行の最後に/を配置しようとしましたが、問題は解決しませんでした。サーバーはubuntu14.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 user@example.com 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>
回答: 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証明書を作成する必要があります...しかし、これには すばらしいチュートリアル があります!