2012-03-03 63 views
2

可能有人比我更有經驗解釋它是如何工作的鏈接(例如):文件夾中獲得價值

http://www.facebook.com/zuck 

我認爲這是這個

http://www.facebook.com/profile.php?id=4 

同樣的事情,我想, 「zuck」是一個GET類型的字符串,但我不明白我可以做同樣的事情。

非常感謝你

+1

搜索'.htaccess'(或計算器) – knittl 2012-03-03 14:04:43

+0

這不是一個參數完美的感覺。它的工作方式就像訪問Web服務器上的文件夾或文件一樣,但配置會將您重定向到特定的站點。這可以通過'.htaccess'文件完成,但不是唯一的選擇。 – Smamatti 2012-03-03 14:08:20

回答

2

.htaccess文件:

RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /profile.php?id=$1 [L] 
+0

非常感謝。我做到了 – 2012-03-03 15:22:00

2

你可以用Apache的mod_rewrite module輕鬆地做到這一點:這是一個機制,允許你指定投放的內容爲傳入的請求。例如,你可以做一個規則,在你的.htaccess文件,如:

RewriteRule (.*) index.php?req=$1 

這將然後重定向每個傳入的請求到中央的index.php,在那裏你可以解析請求的URI(在你的榜樣,req變量將保存值「zuck」),然後您可以根據該信息提供一些內容(例如,您可以在包含用戶配置文件的數據庫中查找「zuck」,獲取與「zuck」值關聯的id,然後顯示用戶#24的配置文件)。

至少這是基本的想法。它通常被稱爲「URL美化」或「友好的URL」或「SEO網址」,搜索這些條款,你會發現很多資源。

1

其實,我不知道這件事,但我看到它的方式,Facebook的可能使用兩種方式來獲得一個輪廓

我快速的.htaccess,以確保所有的請求同一頁上到達。現在

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /profile.php?input=$1 [L] 

,在profile.php,應該做一個簡單的檢查,就像在你喜歡的搜索引擎

$input = $_GET['input']; 

if(is_string($input)) { 
// then retrieve profile id, based on the string 
} 
//now either way you have an unique identifier at last 
// 
// 
// use your logic further more