一切工作正常,直到我添加我的.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導致我的東西它的東西我的重寫錯誤
這是它應該如何工作: index.php加載。 $ _SESSION ['url']被設置爲index.php
一個登錄表單被制定,其操作重定向到process.php
process.php $ session-> referrer設置從$ _SESSION ['url']
確認登錄後,頁面應該使用:header(「Location:」。$ session-> referrer)重定向。
這是它原本沒有任何問題的原理。
但是,在.htaccess創建後,它似乎將我重定向到userinfo.php。我認爲這與我的規則有關。
任何想法?
我想看看最初設置'$ _SESSION ['url']' – webbiedave 2010-09-10 18:40:38
這是第二個代碼塊的最後一行代碼。 – chaos 2010-09-10 18:43:01
@chaos:啊,我明白了。 – webbiedave 2010-09-10 18:59:23