我正在使用.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!
我希望這可以幫助別人解決會話問題。
一切順利,
鮑勃
一個空白頁往往意味着致命的錯誤出現。啓用error_reporting:'ini_set('display_errors',1); ini_set('display_startup_errors',1); error_reporting(-1);'告訴我們你收到了什麼錯誤。並檢查你的apache error_log爲'500'。 –
以下是表單提交後載入腳本的日誌:注意:未定義索引: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
未定義的索引不會拋出500.您的日誌文件還有什麼?請編輯你的問題。閱讀評論中的日誌是非常可怕的。 –