如何使用户系统example.com/username
答案 0 :(得分:5)
如果您使用的是Apache
,则需要使用mod_rewrite这是一篇关于如何实现它的文章:
答案 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
等现有网址冲突的网址。