這幾天笨兔架在 Hostinger (000webhost) 網站上的 PHP 網頁突然都變空白了(用了好一陣子都沒問題,怎突然就出現這問題 >"<),笨腦袋兒查了下原因,發現網頁內若有設置 SESSION,就會停止執行而變成網頁空白。找谷狗大神查了下,猜想這應是某些網站沒有開啟支援 SESSION 的功能吧!(若有誤、請自行更正唄!)
所使用的網站空間,其內部設定或許沒有開放讓您去設定,所以只有靠自己囉!使用『.htaccess』(此為 Apache 組態檔,Windows 的 IIS 就不支援了) 設定來解決囉!以下為笨兔自己記錄參考用,若有需者就參考!若有錯誤或其它方法,請自行更正唄!
.htaccess
『.htaccess』是指沒有檔案名稱,其副檔名為 htaccess 的文字檔案,生成方法:
(1) 開啟 Windows 內建的『記事本』編輯程式後,選擇儲存檔案或另存新檔,檔案名稱輸入『.htaccess』,存檔類型選『所有檔案』,再按存檔即可。
(2) 倘若您存檔後副檔名仍是 txt 或其它也沒關係 (如 .htaccess.txt),用您的 FTP 軟體 (笨兔以 FileZilla 為例),或將您的 Windows 系統設置顯現副檔名,再進入裡面把副檔名 .txt 去掉即可!
.htaccess 設定及語法
用文件編輯軟體 (如筆記本) 直接開啟 .htaccess 來輸入語法即可。語法是一行為一個指令,勿斷行或空白行哦!完成儲存後,放在您網頁的資料夾內,其影響的範圍是所在目錄及子目錄。
例:若您的網頁資料夾內有三層 \A\B\C
- 將 .htaccess 放在 \A 內,則 A、B、C 目錄都有作用。
- 將 .htaccess 放在 \C 內,則 只有 C 目錄有作用。
再來說說語法指令,笨兔僅述其中幾個較常用的,若要更深入探索,就找谷狗大神輸入 .htaccess 搜尋就一堆了!^ ^
- 像笨兔此次遇到網頁內設有 SESSION 而網站無作用的情況,則在 .htaccess 內輸入以下一行即可:
php_flag session.auto_start on
- 若要改變您網站的首頁檔,則在 .htaccess 內輸入以下一行即可:(會依序找您設定在 DirectoryIndex 後面的網頁名稱來當首頁檔,每檔案之間空一格)
DirectoryIndex index.html login.php login.html abc.html
- 若您的網站沒 SSL 仍是 http://,也可透過 .htaccess,直接將它導向 https://,則在 .htaccess 內輸入以下三行即可。如您的網址是 http://vv0817.tk,不管您輸入 vv0817.tk 或 http://vv0817.tk,都會直接轉成 https://vv0817.tk
說明一下三行的語意:第一行是開啟Rewrite指令,第二行是設定若是來自所有 http (port 80) 的連線,第三行是將第二行的連線全數改用 https (port 443) 的連線。
RewriteEngine On
RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
- 假若您的網頁內沒有首頁檔,則直接輸入網址就會直接顯示您網站內的所有檔案及目錄。若要隱藏檔案不顯示,則在 .htaccess 內輸入以下一行即可:
Options -Indexes
- 若要顯示網站內的檔案及目錄,但要隱藏某些特定檔案(此以隱藏所有zip和exe類型的檔案為例,檔案間空一格),則在 .htaccess 內輸入以下一行即可:
IndexIgnore *.zip *.exe