想定状況
開発時はhttpで 本番環境だけhttpsなURLで実装したりするときに踏みそうな話。
TrustedProxyでLaravelにhttpsと認識させたとしても、Apache側は認識してくれないので、httpへのリダイレクトが帰ってくる場合があります。
一番ありがちなのは https://laravel/aaa/bbb/ccc/
から https://laravel/aaa/bbb/ccc
へのリダイレクトとか。
ただのリンク遷移なら見た目問題ないものの、Ajax経由でAPIを叩いてると通信エラー吐くので要注意。
修正内容
とりあえず末尾 / を外すリダイレクトはhttps固定にしておく。
diff --git a/public/.htaccess b/public/.htaccess
index 9aec9e17..91bd9143 100644
--- a/public/.htaccess
+++ b/public/.htaccess
@@ -12,7 +12,7 @@
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
- RewriteRule ^ %1 [L,R=301]
+ RewriteRule ^ https://%{HTTP_HOST}%1 [L,R=301]
# Send Requests To Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d