Apache : RewriteRule vs Redirect vs ProxyPass
ApacheのRewriteRuleとRedirectとProxyPass。
使い分けがよくわからなくて調べました。
今回私がやりたかったことは以下の二点。
- http://www.before.com/ ->リダイレクト-> http://www.after.com/
- http://www.front.com/ ->プロキシ-> http://www.back.com/
1では、ユーザーが最終的に見るURLはhttp://www.after.com/。
2では、ユーザーが最終的に見るURLはhttp://www.front.com/。http://www.back.com/のコンテンツのみ取得します。
上記の場合は何を使ったほうがいいのか?
結果を言うと、1はRewriteRuleかRedirectで実現できました。
1はRewriteRuleかProxyPassで実現できました。
つまりざっくり言うと以下。
RewriteRule | Redirect | ProxyPass | |
---|---|---|---|
プロキシ | ○ | × | ○ |
リダイレクト | ○ | ○ | × |
基本的に今回私がやりたかったことではどちらを使っても大丈夫でした。
ですがRewriteRuleでは
- 正規表現が利用可能
- RewriteCondで適用条件を詳細に設定できる
ので、細かい設定が必要な場合はRewriteRuleの方がいいかもしれないです。
あるいは機能的にRewriteRuleで何でもできてしまうのなら、できるだけそれを使うことで統一した方がわかりやすいと思いました。