允许您网站的用户名扩展名(即http://example.com/someusername)

时间:2012-12-01 14:42:53

标签: php mod-rewrite url-rewriting

我正在社交网站上工作。我想做的事情是让用户的用户名来自我的网站名称...例如example.com/myusername。我知道我可以使用$ _GET变量做一些事情,它看起来像是example.com/?u=myusername,但我们认为在域之后只有用户名看起来更干净,用户更容易导航。

提前致谢,

JS

2 个答案:

答案 0 :(得分:2)

您可以设置重写规则,将所有不存在的请求定向到index.php(或者您想要使用的任何脚本)。然后只需检查$_SERVER['REQUEST_URI']并提取用户名。

这是一组基本的重写规则(对于apache):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

在你的情况下:

$requestParts = explode('/', $_SERVER['REQUEST_URI'];
$username = $requestParts[0];

这样您就可以使用:example.com/username/posts/newest,并提取各种“部分”。

答案 1 :(得分:1)

如果您使用的是apache,那么请查找mod_rewrite 如果您使用的是IIS,请在此处阅读:mod_rewrite equivalent for IIS 7.0

使用其中一个来解析调用URL并为您的页面构建变量。