tkuchikiの日記

Linux やプログラミングについて書きます。

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 の設定は試していないので間違っているかも。。。