Symfony2 で https のみにする設定
nginx から apache に reverse proxy する構成で、はまったのでメモ。
Symfony 側の設定
# app/config/config.yml framework: trust_proxy_headers: true
# routing.yml など requirements: _scheme: https
だけで、いけるかと思ったのだが、httpsにリダイレクトする際に、
https://localhost:port のように 443 以外の port 番号がついてしった。。。
調査したところ、参考になる記事を見つけた。
Google グループ
Absolute HTTPS URLs incorrect in Twig when behind trusted reverse proxy · Issue #3500 · symfony/symfony · GitHub
http header に、X-Forwarded-Port を設定することで、443 に固定する方法があるようだ。
Webサーバ側の設定
apache
RequestHeader set X-Forwarded-Port 443
nginx
add_header X-Forwarded-Port 443
nginx の設定は試していないので間違っているかも。。。