RewriteRule нарушает работу $ _SESSION

Все работало нормально, пока я не добавил файл .htaccess. Я пытаюсь перенаправить всех своих пользователей на страницу их профиля. Итак, www.darudude.com/user1 направляет на www.darudude.com/userinfo.php?user=user1

мой файл .htaccess, как это:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)\?*$ userinfo.php?user=$1 [L,QSA]

Однако с тех пор, как я добавил это, он прерывает мои сеансы. На каждой странице у меня есть сеанс инициализации, и сеансы хранят реферер. Это фрагмент кода, который обрабатывает важную часть.

if(isset($_SESSION['url'])){
     $this->referrer = $_SESSION['url'];
}else{
     $this->referrer = "/index.php";
}
//this echo is used to debug why this thing isn't working!!
echo "<script>alert('".$this->referrer."');</script>";
/* Set current url */
$this->url = $_SESSION['url'] = $_SERVER['PHP_SELF'];

, а затем я возвращаюсь на исходную страницу, используя этот фрагмент кода:

header("Location: ".$session->referrer);

Так, например, без файла .htaccess, если я вхожу в систему через один из на страницах все работает, и меня перенаправляют обратно на страницу, с которой я вошел в систему (т.е. если я вошел в систему с index.php, я перенаправлялся обратно на index.php; если faq.php, я перенаправлялся обратно на faq.php). С файлом .htaccess меня все время отправляют в / userinfo. index.php загружается. $ _SESSION ['url'] установлен на index.php
вводится форма входа в систему, действие которого перенаправляет на process.php
process.php $ session-> реферер устанавливается из $ _SESSION ['url']
После подтверждения входа страница должна перенаправить с помощью: header ("Location:". $ Session-> referrer);

Изначально это работало без каких-либо проблем.

Однако после создания .htaccess он, кажется, перенаправляет меня на userinfo.php. Я думаю, это как-то связано с моим правилом.

Есть идеи?

1
задан darudude 10 September 2010 в 19:21
поделиться