2011-05-26 65 views
0

PHP在Cookie被关闭时将会话ID放入URL中。在使用.htaccess重写的情况下,是否必须说明此会话ID(通过主动编码)?htaccess mod_rewrite,PHP和cookie在浏览器中关闭

此外,我认为,当Cookie被关闭时,会话ID无法自动传播,当有混合的.php文件和.html服务。也就是说,如果用户从.php页面导航到.html页面,然后返回到.php页面,则会话标识会丢失,因为.html文件无法解释它。它是否正确?

回答

1

在大多数情况下,会话ID不在.htaccess处理中,因为它位于URL的QUERY_STRING部分(即,在?之后)。但是如果您在RewriteCond中测试QUERY_STRING或将其替换为RewriteRule,则可能必须对其进行解释。

而且你认为正确,会话ID不会通过纯HTML文件传播。但是,你可以使用.htaccess通过PHP运行.html文件:

AddType application/x-httpd-php .html 

和这样的事情来激活URL重写功能对这些文件:

<FilesMatch "\.html$"> 
    php_value auto_prepend_file "/home/*******/public_html/session_start.php" 
</FilesMatch> 

其中session_start.php只包含:

<?php session_start(); 

(详见this SO question)。

或者您可以放置​​一个错误页面,告诉用户您不支持使用Cookie关闭运行。