0

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

提前致谢,

JS

4

2 回答 2

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,并拉出各种“部分”。

于 2012-12-01T14:49:29.643 回答
1

如果您使用的是 apache,请查找 mod_rewrite。
如果您使用的是 IIS,请阅读此处:mod_rewrite 等效于 IIS 7.0

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

于 2012-12-01T14:45:11.823 回答