2011-09-05 26 views
0

我正在開發一個應用程序,其中包含大量不需要用戶登錄進行查看(實際需求)的html頁面。頁面被放置在高度可預測的不同文件夾中。例如www.abc.com/book1/chapter1/lesson1.php,www.abc.com/book1/chapter1/lesson2.php等。如何在php中分配不可預知的網址url

因此,如果有人知道第一課的路徑,他會自動知道路徑章節文件夾中的每一節課。

有沒有辦法,如果有www.abc.com/book1/chapter1/lesson1.php的請求,瀏覽器地址欄中顯示的路徑是類似www.abc.com/book1/chapterHFG564/6756 /lesson1.php或任何其他不可預知的網址?我甚至不知道它是否可能!

+0

那麼,你想使用不可預知的URL而不是用戶登錄? – emaillenin

+0

是的,這是方法。 – samach

+0

就像你說的,即使它是不可預測的,如www.abc.com/book1/chapterHFG564/6756/lesson1.php。如果有人也找到了這個地址,那麼他可以很容易地找出剩下的課程,也可以將最後一件事情改爲lesson2.php(www.abc.com/book1/chapterHFG564/6756/lesson2.php)。然後與簡單的網址相同。 – emaillenin

回答

1

你可以使頁面URL +服務器時間戳作出不可預知的字符串的相對路徑的MD5哈希值(我們稱之爲「翻頁鍵」),然後存儲在頁鍵+相對URL關聯持久存儲(關係數據庫,或 - 速度 - constant database)以供稍後查找。

然後,您可以編寫一個腳本(如「http://www.abc.com/page_mapper.php」),它接受一個「key」參數,查找指定鍵的相對URL,讀取關聯的內容(如果有的話),並「傳遞」給客戶。

最後,您可以添加一個URL rewriting rule來將傳入的請求(例如「http://www.abc.com/book1/chapter2/abCvx9100xvz」)映射到您的腳本(例如「http://www.abc .com/page_mapper.php?key = abCvx9100xvz ==「),你會被設置。

當然,任何知道該URL的人都可以訪問該頁面,但也許你想要那個? 即使用戶A通過電子郵件向用戶B發送鏈接(用戶B可以看到)並且用戶B可以看到它,這是否正確?

0

當它是不可預測的,這是不可能的。你可以將所有的URL到一個PHP文件這將然後重定向用戶正確的URL

+0

即時通訊對不起... dint get u。什麼不可能? – samach

+0

@Salmanmahmood:「如何爲php中的網頁分配不可預知的url」 – genesis

0

不知道如果u可以以這種方式編碼的網址...但你肯定會得到所有的腳本重定向到另一個MEGA腳​​本,並使用會話變量或文件來檢查並查看用戶來自哪裏,並據此進行操作。一旦MEGA腳​​本指向另一個頁面,它將首先保存一個會話變量..一旦重定向登錄頁面打開,您就可以檢查它。