Все работало нормально, пока я не добавил свой файл .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.php, что наводит меня на мысль, что что-то не так с моим rewriterule
Вот как это должно работать:
index.php загружает. $ _SESSION ['url'] установлен в index.php
введена форма входа в систему, чье действие перенаправляет на process.php
process.php, $ session-> referrer устанавливается из $ _SESSION ['url']
После подтверждения входа в систему страницу следует перенаправить с помощью: header («Location:». $ Session-> referrer);
Вот как это изначально работало без проблем.
Однако после создания .htaccess он, кажется, перенаправляет меня на userinfo.php. Я думаю, что это как-то связано с моим правилом.
Есть идеи?