質問: phpのheader関数でhttpからhttpsに移動させたいです submitだとhttpsに移動できます。 `header(location:https://example.com)`だと移動はしますが、 http://example.comに移動してしまいます。 headerのlocationの設定の前に何か必要なのでしょうか? header('HTTP/1.1 301 Moved Permanently');とか加えてみましたがうまくいかず・・・ 後ありえない、https://example_example.php等ないファイルにアクセスしたら、httpsでした・・・わかりません。
回答: ここに記述されたとおりであるとすれば、 ``` header("location :https://example.com"); ``` は誤りで ``` header("location: https://example.com"); ``` が正しいですね。 locationの後のスペースとコロンが逆です。 前者はMac上のChromeで正しく遷移できませんでした。 一度お試しください。 また、headerのlocationですが、解釈しているのはapacheではなく各ブラウザです。 ブラウザが受け取ったレスポンス内のヘッダーを解釈して、指定のURLへリダイレクトしてくれているのです。 なので、本件に関してはapacheの設定は関係ありません。 詳しくは下記を参照してください。