2014-03-03 61 views
0

我正在使用.htaccess文件從網頁中刪除文件擴展名(.php)。我是從這個網站使用的代碼如下:.htaccess刪除.php擴展名,會話變量不通過

Options +FollowSymLinks -MultiViews 
# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

# turn off index.php for home page 
RewriteRule ^index\.php/?$/[L,R=301,NC] 

## hide .php extension snippet 

# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC] 
RewriteRule^%1 [R,L] 

# To internally forward /dir/foo to /dir/foo.php 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f 
RewriteRule ^(.*?)/?$ $1.php [L] 

到目前爲止好,但有些網頁有$ Session變量和.htaccess文件是從正在通過阻止這些變量。即使提供正確的登錄詳細信息,所需的Seeion變量頁也不會顯示,它們完全空白。我檢查的語法在session_start的正確定位(),它如下出現在相應頁面的頭:

<?php 
    session_start(); 
?> 

所有運作良好,直到我說的.htaccess文件。

閱讀了一些Apache文檔後,我意識到我需要包含[QSA]選項。我試圖在上面列出這個,但是,我得到的只有500個錯誤。

難道有人指出我需要在上面包含QSA嗎?

問候,

鮑勃

大家好,

感謝您的輸入。保持簡單,就像我經常說的那樣。解決方案非常明顯,我忽略了它。 /我添加了以下後RewriteBase

RewriteCond %{REQUEST_URI} !^/checklogin\.php$ 

從本質上傳遞它的參數除了包含文件。 Et Voila!

我希望這可以幫助別人解決會話問題。

一切順利,

鮑勃

+2

一個空白頁往往意味着致命的錯誤出現。啓用error_reporting:'ini_set('display_errors',1); ini_set('display_startup_errors',1); error_reporting(-1);'告訴我們你收到了什麼錯誤。並檢查你的apache error_log爲'500'。 –

+0

以下是表單提交後載入腳本的日誌:注意:未定義索引:myusername在/www/sites/020/c16/www.lbfl.co.uk/web/checklogin.php on line 13 :未定義索引:mypassword在/www/sites/020/c16/www.lbfl.co.uk/web/checklogin.php在第16行 注意:未定義的索引:在/ www/sites/020/c16/www中的bollock .lbfl.co。第19行的uk/web/checklogin.php所以它沒有傳遞來自表單的變量?該頁面位於www.lbfl.co.uk/client-pages.php – bobfelstead

+0

未定義的索引不會拋出500.您的日誌文件還有什麼?請編輯你的問題。閱讀評論中的日誌是非常可怕的。 –

回答

1

感謝您的輸入。保持簡單,就像我經常說的那樣。解決方案非常明顯,我忽略了它。我在RewriteBase添加了以下內容/

RewriteCond %{REQUEST_URI} !^/checklogin\.php$ 

基本上不包括傳遞它的參數的包含文件。 Et Voila!

我希望這可以幫助別人解決會話問題。

一切順利,

鮑勃