[技術] codeigniter導頁與http code

使用Codeigniter導頁

redirect(base_url("404頁"));  //http code 307
redirect(base_url("404頁"), 'location', 302);  //http code指定為302
show_404(); //codeigniter內建函數,導CI預設404頁(非自製404頁)

使用PHP函數導頁

header("Location:".base_url("404頁"));//http code 302

http code:
302 暫時轉址
有些瀏覽器可能會將POST request轉成GET往新的location發,因為302沒有定義清楚到底這種狀況要如何處理,當初認為POST method 若重複執行,可能會導致伺服器狀態不一致,因此要先和 client 端確認,大部分的瀏覽器都將 302 實作成 POST request 被 redirect 之後改成發送 GET method
為了明確定區別到底重定向之後是否要用相同的方法,303 和 307 隨之而生
SEO影響與使用時機:
僅僅是網址的暫時跳轉,並不會轉移所有的權重與排名,因此 302 Reidrect 重定向只會轉移「流量」。
想在特定活動建立一個活動頁面,讓進入你首頁的使用者能夠先跳轉至活動頁面時,就是和使用 302 Redirect 重定向。

303 暫時轉址
若使用者一開始帶 POST 方法,做重定向之後,必須要用 GET,其實也就是大部分瀏覽器對 302 的實作。

307 暫時轉址
使用者不管帶什麼方法上來,重定向之後都要用相同方法。所以如果使用者一開始用 POST,那麼,被 307 重定向後,也應該要使用 POST。

參考網址:
https://codeigniter.org.tw/user_guide/helpers/url_helper.html
https://codeigniter.org.tw/user_guide/tutorial/static_pages.html
https://medium.com/@dubiety/%E6%90%9E%E6%87%82-http-3xx-%E9%87%8D%E6%96%B0%E5%B0%8E%E5%90%91%E7%8B%80%E6%85%8B%E7%A2%BC-f1a288c1cd20
https://zh.wikipedia.org/wiki/HTTP%E7%8A%B6%E6%80%81%E7%A0%81

這個網誌中的熱門文章

[體驗] 婚後孕前健康檢查-雙和醫院

[linux] 指令(含mysql備份還原)、git指令、sourcetree驗證

[工具] notepad++垂直選取