2016年更新
この回答が注目を集めているので、仮想ホストを使用してこれを行うためのより推奨される方法を示唆したいと思います: Apache: Redirect SSL
<VirtualHost *:80>
ServerName mysite.example.com
Redirect permanent / https://mysite.example.com/
</VirtualHost>
<VirtualHost _default_:443>
ServerName mysite.example.com
DocumentRoot /usr/local/apache2/htdocs
SSLEngine On
# etc...
</VirtualHost>
古い答え、
あなたのssl-portが80に設定されていないことを考えると、これはうまくいくでしょう:
RewriteEngine on
# force ssl
RewriteCond %{SERVER_PORT} ^80$
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
これが最初の書き換えルールであることに注意してください。
編集:このコードは次のことを行います。RewriteCond(ition) は、リクエストの ServerPort が 80 であるかどうかをチェックします (これはデフォルトの http ポートです。別のポートを指定した場合は、それに合わせて条件を調整する必要があります)。その場合は、URL 全体を照合(.*)
し、https-url にリダイレクトします。%{SERVER_NAME}
特定の URL に置き換えることができますが、この方法では、他のプロジェクトのコードを変更する必要はありません。%{REQUEST_URI}
は、TLD (トップレベル ドメイン) の後の URL の部分であるため、元の場所にリダイレクトされますが、https.