比我有更多经验的人可以解释它是如何工作的链接(例如):
http://www.facebook.com/zuck
我认为这与此相同
http://www.facebook.com/profile.php?id=4
我想“zuck”是一个 GET 类型的字符串,但我不明白我怎么能做同样的事情。
非常感谢您
比我有更多经验的人可以解释它是如何工作的链接(例如):
http://www.facebook.com/zuck
我认为这与此相同
http://www.facebook.com/profile.php?id=4
我想“zuck”是一个 GET 类型的字符串,但我不明白我怎么能做同样的事情。
非常感谢您
.htaccess 文件:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /profile.php?id=$1 [L]
您可以使用 Apache 的mod_rewrite 模块轻松做到这一点:这是一种允许您指定为传入请求提供哪些内容的机制。例如,您可以在 .htaccess 文件中制定规则,如下所示:
RewriteRule (.*) index.php?req=$1
然后它将每个传入请求重定向到中央 index.php,您可以在其中解析请求的 URI(在您的示例中,req 变量将保存值“zuck”),然后您可以根据该信息提供一些内容(例如您可以在包含用户配置文件的数据库中查找“zuck”,获取与“zuck”值关联的 id,然后显示用户 #24 的配置文件)。
至少这是基本的想法。它通常被称为“URL 美化”或“友好 URL”或“SEO URL”,搜索这些术语,您会发现大量资源。
实际上,我不确定,但在我看来,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