2017-02-09 9 views

答えて

1

インターネットにはこれに対応するソリューションがたくさんあります。あなたの質問に答えた例はありませんか?

両方書き直しは信頼できる方法で一段階で実行できません。代わりに、次の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サーバのホスト設定内のこのようなルールを置くことを好む必要があります。これらのファイルは悪名高いエラーが発生しやすく、デバッグが難しく、サーバーの速度が遅くなります。彼らは、あなたがホスト構成(本当に安いホスティングサービスプロバイダを読む)を持っていないか、独自の書き換えルールを書くことに頼っているアプリケーションを持っている場合にのみ、最後のオプションとして提供されます(これは明白なセキュリティの悪夢です)。

+0

問題に関するご意見をお寄せいただきありがとうございますが、今のところ最も簡単な方法は.htaccessを使用することです。このようにしたら、私はホスト構成を掘り下げます。ところで、私はあなたのコードを試みたが、私は内部サーバーのエラーを取得しています。 –

+0

提案したように、私はENDの代わりにLを使用しなければならなかった –

+0

確かに、あなたは非常に古いバージョンのApache HTTPサーバーを使用しています。他の書き換えルールに干渉していない限り、正常に動作します。 – arkascha