###前提・実現したいこと
route53→cloudfront→ELB→EC2(wordpress on nginx)の環境で
wwwなしのURLをありにリダイレクトさせたい。
###発生している問題・エラーメッセージ
ブラウザでexample.comにアクセスしたときのエラー
ERROR The request could not be satisfied. Bad request. Generated by cloudfront (CloudFront) デベロッパーツールのコンソールを確認すると 403 Forbidden とでています。
###現在の設定
◆route53設定 ●example.com ●A-IPv4 address ●Alias Target:www.example.com. ●www.example.com ●A-IPv4 address ●Alias Target:xxxxxxxxxxx.cloudfront.net.
◆cloudfront設定 Alternate Domain Names (CNAMEs): *.example.com
◆nginx confファイル設定 server { listen 80; server_name _;
◆wordpress設定 homeurl:www.example.com siteurl:www.example.com wp-config.phpの最上部に $_SERVER['HTTP_HOST'] = $_SERVER['HTTP_X_FORWARDED_HOST']; $_SERVER['REMOTE_ADDR'] = $_SERVER['HTTP_X_FORWARDED_FOR'];
###現在できていること
上記の設定でwww.example.comは表示できています。
X-Cache:Hit from cloudfrontも確認できております。
またAレコードの設定を以下のようにすることでexample.comでもアクセスができています。
●example.com ●A-IPv4 address
●Alias Target:elbのアドレス
example.comでのアクセスはヘッダ情報にX-Cacheが表示されておりませんので
当然ながらelbに直接アクセスしている状態だと思います。
###試したこと
route53でリダイレクト、もしくはcloudfrontでリダイレクトをさせたいと思い
cloudfrontで試した設定 Cache Behavior SettingsのWhitelist Headersに 「host」「example.com」等を加えてみました
がブラウザで確認すると上記のエラーが出ておりました。
また妥協案としてexample.comにアクセスが来た場合は
オリジン(nginx)からリダイレクトさせようとnginxに以下の設定をしてみました。
◆nbinx confファイル server { listen 80; server_name example.com; return 301 http://www.example.com$request_uri; }
結果はリダイレクトループが発生してしまいます。
example.com,www.example.com共にエラーになりました。
###現在の疑問点
・色々調べている時にroute53→s3の構成でs3でリダイレクトさせるという情報がいろいろ出てきましたがroute53でのリダイレクトはできないということでしょうか。
・cloudfrontでリダイレクトする情報も検索している時にhttp://www.example.comとhttp://example.comとhttps://example.comをhttps://www.example.comにリダイレクトするのはcloudfront設定画面のViewer Protocol PolicyのRedirect HTTP to HTTPSを選択すればできそうなこと(←できるのでしょうか?体験談などお聞かせいただければ嬉しいです。)は分かりましたが今回のようにhttpsが絡まないリダイレクトはどのように設定すればできるのでしょうか。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/03/07 01:55 編集
2017/03/10 04:34
2017/03/11 07:46