我正在使用.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.您的日志文件还有什么?请编辑你的问题。阅读评论中的日志是非常可怕的。 –