インターネットにはこれに対応するソリューションがたくさんあります。あなたの質問に答えた例はありませんか?
両方書き直しは信頼できる方法で一段階で実行できません。代わりに、次の2つのステップが必要です。
RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [END,R=301]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [END,R=301]
を注:場合は、あなたがL
フラグでEND
旗を交換する必要が非常に古いhttpサーバのバージョンを使用しているが、この場合には同じように動作するはずです。
と一般的なヒント
:あなたは、常に動的な設定ファイル(「.htaccessファイル」)を使用するのではなく、HTTPサーバのホスト設定内のこのようなルールを置くことを好む必要があります。これらのファイルは悪名高いエラーが発生しやすく、デバッグが難しく、サーバーの速度が遅くなります。彼らは、あなたがホスト構成(本当に安いホスティングサービスプロバイダを読む)を持っていないか、独自の書き換えルールを書くことに頼っているアプリケーションを持っている場合にのみ、最後のオプションとして提供されます(これは明白なセキュリティの悪夢です)。
問題に関するご意見をお寄せいただきありがとうございますが、今のところ最も簡単な方法は.htaccessを使用することです。このようにしたら、私はホスト構成を掘り下げます。ところで、私はあなたのコードを試みたが、私は内部サーバーのエラーを取得しています。 –
提案したように、私はENDの代わりにLを使用しなければならなかった –
確かに、あなたは非常に古いバージョンのApache HTTPサーバーを使用しています。他の書き換えルールに干渉していない限り、正常に動作します。 – arkascha