2010-09-06 22 views
0

如何使用户系统site.com/username如何使用户系统site.com/username

+3

现有的冲突,我建议你使用像'/用户/ ...'避免像其他例如现有的URL冲突的路径前缀'/ register'。 – Gumbo 2010-09-06 10:01:13

+0

永远不要想到这一点! – 2010-09-06 10:03:46

回答

1

您的网络服务器需要知道如何处理这样的URL。大多数Web服务器软件都有一个扩展,允许在内部重写所请求的URL。

对于Apache的Web服务器,有mod_rewrite,它允许基于规则的URL重写。在你情况下,你可以使用下面的规则.htaccess文件在内部改写这样的请求的URL路径的user.php的文件:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^[^/]+$ user.php [L] 

注意,这条规则也只添加一种新的方式来请求/user.php ;所以仍然可以直接请求/user.php

user.php中,您可以使用$_SERVER['REQUEST_URI']访问请求的URI路径。提取用户名,你可以使用以下命令:

$_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH); 
$username = substr($_SERVER['REQUEST_URI_PATH'], 1); 

现在你只需要调整您的应用程序服务的正确网址作为mod_rewrite的只能重写传入的请求,并没有传出的响应。

但除此之外,我宁愿建议一个不同的URI设计,具有不同的前缀,如/user/…。否则,用户可以选择的网址与像/index.html/robots.txt/sitemap.xml