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

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

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

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

mod_rewrite

ApacheウェブサーバーのためのURL書き換えモジュールです。主にプリティーURLに使われていますが、同様に単純置換を超えた、多様なタスクの処理能力や柔軟性があります。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

Q&A

解決済

1回答

5403閲覧

.htaccessでのhttpsへのPフラグについて

cp_cop

総合スコア40

HTTPS

HTTPS(Hypertext Transfer Protocol Secure)はHypertext Transfer プロトコルとSSL/TLS プロトコルを組み合わせたものです。WebサーバとWebブラウザの間の通信を暗号化させて、通信経路上での盗聴や第三者によるなりすましを防止します。

mod_rewrite

ApacheウェブサーバーのためのURL書き換えモジュールです。主にプリティーURLに使われていますが、同様に単純置換を超えた、多様なタスクの処理能力や柔軟性があります。

.htaccess

Apacheウェブサーバーにおいて、ディレクトリ単位で設置及び設定を行う設定ファイルを指します。

0グッド

0クリップ

投稿2017/10/07 02:49

編集2017/10/07 02:53

http://hoge.example.com へのアクセスを http://example.com/foo.html が表示されるようにするため
サブドメインhogeディレクトリに以下の.htaccessを設置し動作しています。

RewriteEngine on RewriteRule ^(.*)$ http://example.com/foo.html [P,L]

これをhttpsにした場合、500 Internal Server Errorがでてしまいます。
やりたいことは、http://hoge.example.com へのアクセスを https://example.com/foo.html
以下の.htaccessでエラーになりました。

RewriteEngine on RewriteRule ^(.*)$ https://example.com/foo.html [P,L]

過去の同じような質問(https://teratail.com/questions/51181)を見つけ以下のようにしましたが同じくエラーでした。

LoadModule rewrite_module modules/mod_rewrite.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule ssl_module modules/mod_ssl.so RewriteEngine on SSLProxyEngine on RewriteRule ^(.*)$ https://example.com/foo.html [P,L]

どのようにすればhttpsのページが表示されますでしょうか。
利用しているサーバーはエックスサーバーです。
宜しくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

前回の質問(「サブドメインのリライトについて」)の続きですね。
対応方法は、自力で調べられた内容でほぼ間違いありませんが、補足事項もあるので回答します。


https に対して、mod_rewrite の P フラグを設定する(httpsのリバースプロキシ)には、「SSLProxyEngine on」が、有効になっている必要があります。
お使いのサーバでは、「SSLProxyEngine on」が、有効になっていないのだと思います。

すでに .htaccess で、試されていますが、この設定(SSLProxyEngine)は、.htaccess では設定できませんので、レンタルサーバでは設定できないかもしれません。

もし、httpd.conf や Virtual Host 関連の設定が変更できる契約であれば設定できる可能性もありますので、レンタルサーバのサポート窓口に問い合わせてみてください。

詳しくは、以下のマニュアル参照。

投稿2017/10/07 04:17

編集2017/10/07 04:18
CHERRY

総合スコア25171

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

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

cp_cop

2017/10/07 04:35

前回に引き続きご回答いただきありがとうございます。 アクセスするURLがhttps://hoge.example.comですと、エラーなくhttps://example.com/foo.htmlの内容が表示されたので、 RewriteCond %{HTTPS} off RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 上記の httpをhttps へ統一させる記述をすることでいけるかなといろいろ試行錯誤してみましたが、 結果は同じくエラーになり、どうしたらいいものか悩んでおりました。 >この設定(SSLProxyEngine)は、.htaccess では設定できません とても参考になりました。 早速、レンタルサーバーのサポートに問い合わせてみます。 ありがとうございました。 また何かあればお願い致します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問