2012-03-03 42 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