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

时间:2010-09-06 09:45:31

标签: php

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

3 个答案:

答案 0 :(得分:5)

如果您使用的是Apache

,则需要使用mod_rewrite

这是一篇关于如何实现它的文章:

http://articles.sitepoint.com/article/guide-url-rewriting

答案 1 :(得分:1)

这回答了你的问题 http://articles.sitepoint.com/article/guide-url-rewriting

编辑:Arg击败2分钟。我很慢哦,这里是替代方法的另一个链接http://www.thyphp.com/friendly-url-without-mod_rewrite.html

答案 2 :(得分:1)

您的网络服务器需要知道如何处理此类网址。大多数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);

现在您只需要调整应用程序以提供正确的URL,因为mod_rewrite只能重写传入的请求而不是传出的响应。

但除此之外,我宁愿使用像/user/…这样的独特前缀来建议不同的URI设计。否则,用户可能会选择与/index.html/robots.txt/sitemap.xml等现有网址冲突的网址。