2017-07-20 12 views
0

ほとんどの場合、ユーザはに私の安全なサイトにリダイレクトされますが、ユーザがhttps://10.10.10.10と入力した場合を除き、証明書エラーが発生します。しかし、ユーザーが続行することを決定した場合は、私の安全なサイトにリダイレクトしたいと思います。これは可能ですか?私のコードを見てください。Apache ReWrite with SSL IP

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^10\.10\.10\.10$ 
RewriteRule ^(.*)$ `https://mysite.example.com`/$1 [L,R=301] 
RewriteCond %{HTTPS} !on 
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 
+0

はい、可能です。あなたのサンプルは良いと思われる – huydq5000

答えて

0

私はわからないものの%{HTTP_HOST} IPをテストするために使用することができます(Apacheはあたり何のホストは、ホストがIPであれば言うありません考えるかもしれません)、そして、あなたの質問から、ルールをテストしたと仮定すると、それがなかったのうまくいけば、間違いなく改善の余地があります。

SSL証明書は1つのホスト名にのみ関連付けられています(ワイルドカード証明書を持っていない限り、それは端的なケースです)。そのため、ウェブサイトがそのIPまたは別のドメインエイリアス;あなたがhttpsと特定のホスト名にリダイレクトされることを望むなら、それはすべて重要です。

ちなみに、IPを変更した場合は、DNSと書き換えルールの両方で変更する必要がありますが、これは理想的ではありません。

それでは、それを単純化してみましょう:あなたは第二の条件が満たされた場合には、IPまたは間違ったホストであるかもしれないとして、あまりにも先をmysite.example.comをハードコーディングする必要が

RewriteEngine On 
RewriteCond %{HTTPS} !on [OR] 
RewriteCond %{HTTP_HOST} !^mysite.example.com$ 
RewriteRule (.*) https://mysite.example.com%{REQUEST_URI} [L,R=301] 

注意。

+0

カプセルに感謝します。あなたのコードは確かに改善です。しかし、それはまだ[リンク](https://10.10.10.10)で動作しません。私は期待どおりの証明書のエラーを取得し、私は[リンク](https://mysite.example.com)ではなく、[リンク](https://10.10.10.10)(無効な証明書で)に行く –

+0

ブラウザのキャッシュをクリアしましたか? IPに行くのは間違いなく 'RewriteCond%{HTTP_HOST}!mysite.example.com $' – Capsule

+0

と一致するでしょう。いくつかのマシン、いくつかのブラウザ、https:// は、クリックするとリダイレクトされません。クリアされました。ご協力いただきありがとうございます。 –