( 2022.07.03晚上11點多更新 這個卡了一天多.... )

剛剛在想 , 雖然我是用免費方案 

但發現 heroku的https 就有免費ssl (http就沒有 , 輸入http會不安全) 

免費方案沒有自動轉址 ...

所以就去研究了一下 

Lavavel (PHP框架)

要把public下面的.htaccess內容改成如下

RewriteEngine On
 
# If we receive a forwarded http request from a proxy...
RewriteCond %{HTTP:X-Forwarded-Proto} =http [OR]
 
# ...or just a plain old http request directly from the client
RewriteCond %{HTTP:X-Forwarded-Proto} =""
RewriteCond %{HTTPS} !=on
 
# Redirect to https version
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
 
# Put the rest of your rewrite rules here

然後再push到heroku即可

之後只要打http+網址 , 就會自己轉成https的網址了

😀😀😀

不過只有Laravel可以這樣用 , 單純的heroku php轉址我還沒找到... 

雖然花錢升級成heroku hobby dyno就可以解決這個問題 , 但不想花 😆

有空再來找 , 反正現在應該都是用框架多吧..

最後 , 附上參考資料

謝謝大神 🙏🙏🙏

 

1. https://help.heroku.com/J2R1S4T8/can-heroku-force-an-application-to-use-ssl-tls

2. https://stackoverflow.com/questions/1329647/force-ssl-https-with-mod-rewrite/34065445#34065445

(以下內容來自上面的stackoverflow網站)

以下解決方案適用於代理服務器和未代理服務器。因此,如果您正在使用CloudFlare、AWS Elastic Load Balancing、Heroku、OpenShift或任何其他 Cloud/PaaS 解決方案,並且您在使用正常 HTTPS 重定向時遇到重定向循環,請嘗試一下。

RewriteEngine On

# If we receive a forwarded http request from a proxy...
RewriteCond %{HTTP:X-Forwarded-Proto} =http [OR]

# ...or just a plain old http request directly from the client
RewriteCond %{HTTP:X-Forwarded-Proto} =""
RewriteCond %{HTTPS} !=on

# Redirect to https version
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# Put the rest of your rewrite rules here

 

結束 .

 

arrow
arrow
    文章標籤
    laravel
    全站熱搜
    創作者介紹
    創作者 湯尼 的頭像
    湯尼

    湯尼的部落格

    湯尼 發表在 痞客邦 留言(0) 人氣()