質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

1回答

3140閲覧

htaccessを使い特定のページのみSSLにしたい

neno

総合スコア7

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

1クリップ

投稿2016/09/28 23:09

###前提・実現したいこと

html+cssで作成しているサイトの中の特定のページのみを、htaccessを使ってSSLにしたいのですが、うまくできません。
contact.htmlとentry.htmlの2ページをSSLにしたいです。
下記のコードだと、safariだとページを開く度にSSLになったりならなかったり、クロームで見るとCSSが効かず表示が崩れたりします。
ディレクトリは下記のようになっており、SSLにしたいページとしたくないページは同じ階層にあります。

index.html
contact.html
entry.html
aaa.html
bbb.html
+--css/CSSファイル
+--img/画像ファイル
+--その他フォルダ/その他html

###該当のソースコード

RewriteEngine on RewriteCond %{REQUEST_URI} .*/contact.html$ [OR] RewriteCond %{REQUEST_URI} .*/entry.html$ RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] RewriteCond %{REQUEST_URI} !(.*/contact.html$) RewriteCond %{REQUEST_URI} !(.*/entry.html$) RewriteCond %{HTTPS} on RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R,L]

###試したこと
サイトなどで調べて試してみましたが、htmlとcss以外の知識がなく、どの部分に問題があるのかが分かりません。どなたかお教え頂けると嬉しいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

CSSが崩れる件については、
1.HTML本体はリダイレクトされてHTTPSで取得となる
2.CSSや画像は非HTTPSで取得となる
3.HTTPSと非HTTPSが混在する為、ブラウザ側の機能で非HTTPS通信を遮断している
とかじゃないですかね。
何故にHTML本体以外をわざわざリダイレクトさせてまで非HTTPSで通信させたいのか不明ですが。。。

HTTPSリダイレクトが機能したりしなかったりと言うのは、URLの.htmlの後にパラメータがついていたりするとかではないでしょうか。

投稿2016/09/29 01:32

kunai

総合スコア5405

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

neno

2016/09/29 04:09

回答ありがとうございます。 CSSが崩れる件については、おっしゃる通りなのかなと思いました。 リダイレクトが機能したりしなかったりの部分については、.htmlの後にパラメーターはついておりません。 特定ページのみSSLにしたい理由は、印刷物などで「http」と表記しているので、URLが変わるから…と思っていましたが、考えてみれば全体をSSLにリダイレクトさせればページは見られるので問題はない、と考えても良いのかもしれませんね。 もし可能なら特定のページのみSSLに出来るとベストではありますが、それは方法が難しいのでしょうか。SSLにするページとそれに関連するCSSや画像などを1つ新しくフォルダを作って入れて、その中全体をhtaccessでSSLにする、などが必要なのでしょうか。
kunai

2016/09/29 04:41

勿論、特定ページのみHTTPSにも出来ますよ。 ただ、HTTPSでアクセスしてきているモノをわざわざHTTPに戻す必要はないんじゃないかと思うのですが。 印刷物にhttp://と書いていても、サーバ側で勝手にリダイレクトしてあげれば何の問題もないと思います。 個人的にはサイト全体をHTTPS対応にし、HTTPでアクセスがあった場合はすべてHTTPSにする、と言うのをお勧めします。 Googleの評価も、フルHTTPS対応の方が評価高くなるらしいですよ。 https://webmaster-ja.googleblog.com/2014/08/https-as-ranking-signal.html
neno

2016/10/01 02:24

ありがとうございます。 全ページをSSLにしてみますね。万が一サイトオーナーより一部のみのSSL化が求められたら、その時は再度質問させて頂くかもしれません。 助言ありがとうございました。とても助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問