Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 注销脚本不存在';设置重定向时无法工作_Php_.htaccess_Redirect_Apache2 - Fatal编程技术网

Php 注销脚本不存在';设置重定向时无法工作

Php 注销脚本不存在';设置重定向时无法工作,php,.htaccess,redirect,apache2,Php,.htaccess,Redirect,Apache2,我有以下注销脚本: setcookie("key", "", time() - 36000); setcookie("usr_email", "", time() - 36000); session_destroy(); header("Location: http://www.site.net/"); 当我喜欢直接访问该页面(logout.php)时,它工作得很好,可以注销用户 但出于某种原因,当我使用: Options +FollowSymlinks RewriteEngine on Re

我有以下注销脚本:

setcookie("key", "", time() - 36000);
setcookie("usr_email", "", time() - 36000);
session_destroy();
header("Location: http://www.site.net/");
当我喜欢直接访问该页面(logout.php)时,它工作得很好,可以注销用户

但出于某种原因,当我使用:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^log-out /logout.php
我可以看到重定向工作正常,但没有执行注销


编辑:刚刚选中,重定向回主页后,cookie仍然可用。只是澄清一下,如果我直接转到注销php文件,它工作得很好。

我认为问题在于htaccess文件中的连字符。试试这个:

RewriteRule ^log\-out /logout.php
你能告诉我发生的错误/行为吗

编辑:
问题出在你的PHP中。首先,我建议将登录相关数据存储在会话中,而不是cookie中。用户可以添加和编辑cookie

无论如何,代码应该成功地清除(如果不删除)cookies。因此,您可能是根据cookie是否存在而不是其内容来检查您是否登录。在本例中,请尝试
if(empty($\u COOKIE['key'])
,它将检查它是否为空

要完全删除cookie:
unset($\u cookie['key'])

顺便说一句,
session\u destroy()
与cookie完全无关

编辑2:
尝试将cookie分配给您的域及其所有子域(包括www):


添加cookies时也要这样做。

在htaccess文件中尝试此操作

Options +FollowSymlinks
RewriteEngine on

RewriteBase /

RewriteRule ^log\-out logout.php

将RewriteBase设置为您的基本url:希望您知道这一点。

这并没有解决问题。。没有错误或任何东西,它确实会将我重定向到主页,但不会删除cookies。重定向后,我仍然登录。我将setcookie更改为unset(),但得到了相同的结果。另外,当直接链接到.php文件时,怎么可能工作,而当我使用重定向时却不工作呢?您100%确定要浏览php文件吗?删除重定向并打印一些内容,然后尝试查看它是否仍然重定向。@Martti我将重定向更改为位置:我可以看到重定向工作正常,如果这是您的意思,缓存设置是什么,服务器上是否安装了memcached?
Options +FollowSymlinks
RewriteEngine on

RewriteBase /

RewriteRule ^log\-out logout.php