LoginSignup
9
6

More than 3 years have passed since last update.

さくらのレンタルサーバの .htaccess に RewriteRule を書いてリバースプロキシする

Last updated at Posted at 2019-12-17

概要

  • さくらのレンタルサーバの .htaccess に RewriteRule ディレクティブを記述してリバースプロキシする
  • 今回の環境: さくらのレンタルサーバ スタンダードプラン
  • 2019年12月18日時点の動作確認結果
  • https のサーバにリバースプロキシすると Internal Server Error になってしまう問題がある

http://example.sakura.ne.jp/ から http://www.example.com/ にリバースプロキシする例

~/www/.htaccess に書く例。

# http://example.sakura.ne.jp/ にアクセスする際に
# http://www.example.com/index.html にリクエストを投げてしまうため
# disabled で無効にする
DirectoryIndex disabled

# URL書き換え機能を有効にする
RewriteEngine On

# リバースプロキシ先のURLに書き換える正規表現
RewriteRule (.*) http://www.example.com/$1 [P,L,QSA]

# バックエンドのサーバが Host ヘッダを必要とする場合は設定する
RequestHeader set Host www.example.com

http://example.sakura.ne.jp/foo/bar/ から http://www.example.com/foo/bar/ にリバースプロキシする例

~/www/.htaccess に書く場合

# URL書き換え機能を有効にする
RewriteEngine On

# リバースプロキシ先のURLに書き換える正規表現
RewriteRule ^foo/bar/(.*) http://www.example.com/foo/bar/$1 [P,L,QSA]

# バックエンドのサーバが Host ヘッダを必要とする場合は設定する
RequestHeader set Host www.example.com

~/www/foo/.htaccess に書く場合

# URL書き換え機能を有効にする
RewriteEngine On

# リバースプロキシ先のURLに書き換える正規表現
RewriteRule ^bar/(.*) http://www.example.com/foo/bar/$1 [P,L,QSA]

# バックエンドのサーバが Host ヘッダを必要とする場合は設定する
RequestHeader set Host www.example.com

https のサーバにリバースプロキシすると Internal Server Error になってしまう問題

いくつかのパターンで試してエラーログを見たところ、どうやら https にはリバースプロキシできないようだ。

AH01961: SSL Proxy requested for example.sakura.ne.jp:80 but not enabled [Hint: SSLProxyEngine]
AH00961: HTTPS: failed to enable ssl support for xxx.xxx.xxx.xxx:443 (www.example.com)
SSLProxyEngine not allowed here
ProxyRequests not allowed here

SSLProxyEngine ディレクティブは .htaccess では使えないものなので SSLProxyEngine を On にすることもできない。

mod_ssl - Apache HTTP Server Version 2.4

Context: server config, virtual host, proxy section

参考資料

9
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
6