IT Knowledge Base

~ Without sacrifice, there can be no victory ~

發佈日期:

分類:

如何解決Codeigniter中的SESSION,在網頁轉址(redirect)後用不到問題

01. 為了使用64 Bits的Apache、PHP、MySQL,今天試一下放棄用了多年的XAMPP,改由一個個獨立的安裝。

02. 但問題來了,Codeigniter中的SESSION居然在網頁轉址(redirect)後用不到。

03. 程式碼與之前是一模一樣,先假設沒有問題。

04. 檢查了PHP.INI的設定,其中一項為『session.auto_start』,預設為0,將它改回數值1便解決問題。

05. 最後,當然是要重新啟動Apache服務。

06. 網頁轉址(redirect)後的SESSION問題是解決了,但其他同伺服器有用到SESSION的程式碼卻又出現SESSION的警告。

07. 是不是64 Bits的Apache、PHP、MySQL,轉回XAMPP,問題也是一樣,PHP中的SESSION居然在網頁轉址(redirect)後用不到。

08. 反覆測試,原來不是其他問題,是Codeigniter的問題,把Codeigniter的版本更新到3.1.4,便解決了問題。

09. 轉回64 Bits的Apache、PHP、MySQL,為甚麼又出現另一個404 PAGE NOT FOUND問題呢!

10. 總結是:

Codeigniter config.php設定是:
$config['base_url'] = <codeigniter website directory>;
$config['index_page'] = '';
$config['uri_protocol'] = "REQUEST_URI";
.htaccess設定是:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
</IfModule>
Apache http.conf設定是:
<Directory "codeigniter website directory">
AllowOverride All
</Directory>

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *