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

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

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

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

Q&A

1回答

12552閲覧

apache RewriteRuleでhttps転送できない

Kimsehwa

総合スコア312

HTTP

HTTP(Hypertext Transfer Protocol)とはweb上でHTML等のコンテンツを交換するために使われるアプリケーション層の通信プロトコルです。

0グッド

0クリップ

投稿2016/10/12 12:23

RewriteEngine on RewriteCond %{HTTP:X-Forwarded-For} ^xx\.x\.x\.xx RewriteRule ^/(.*)$ http://xx-web.xx.com/$1 [P,L]

RewriteEngine on RewriteCond %{HTTP:X-Forwarded-For} ^xx\.x\.x\.xx RewriteRule ^/(.*)$ https://xx-web.xx.com/$1 [P,L]

にしたら,以下のエラーが出ました。

proxy: No protocol handler was valid for the URL /. If you are using a DSO version of mod_proxy, make sure the proxy submodules are included in the configuration using LoadModule.

こちらhttps://に転送する方法がありましたら教えていただけますでしょうか。

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

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

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

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

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

guest

回答1

0

mod_rewriteのドキュメントのReqriteRuleの[P]フラグの説明によると

Use of the [P] flag causes the request to be handled by mod_proxy, and handled via a proxy request.

(中略)

Note: mod_proxy must be enabled in order to use this flag.

なので、[P]フラグを使うのならmod_proxyモジュールが必要です。

そこでmod_proxyモジュールのドキュメントを見ると

(前略)

Apache のプロキシ機能は mod_proxy の他に、 いくつかのモジュールに分割されています: mod_proxy_http, mod_proxy_ftp, mod_proxy_ajp, mod_proxy_balancer, mod_proxy_connect です。ですから、 特定のプロキシの機能を使いたい場合は、mod_proxy と 該当するモジュールをサーバに (コンパイル時に静的に行なうか LoadModule で動的に読み込むかして) 組み込む必要があります。

これに加えて、他のモジュールによって拡張機能が提供されています。 キャッシュは mod_cache と関連モジュールで 提供されています。SSL/TLS で遠隔サーバに接続する機能は mod_ssl の SSLProxy* ディレクティブで 提供されています。これらの機能を利用するためには、該当するモジュールを 組み込んで設定しなければなりません。

(後略)

だそうなので、mod_proxy_httpモジュールとmod_sslモジュールも必要です。またmod_sslモジュールが提供するディレクティブですが、mod_sslモジュールのドキュメントを見ると、少なくともSSLProxyEngineは必要そうです。

まとめると、こうなります。

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 RewriteCond %{HTTP:X-Forwarded-For} ^xx\.x\.x\.xx RewriteRule ^/(.*)$ https://xx-web.xx.com/$1 [P,L]

LoadModuleディレクティブの書き方は、お使いの環境によって多少違うかもしれません。また、すでに設定のほかの場所でロードされているモジュールについては、記述は不要です。

投稿2016/10/30 05:33

ikedas

総合スコア4227

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問