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

Php 如何使用户系统example.com/username,php,Php,如何使用户系统example.com/username如果您使用的是Apache,则需要使用mod_rewrite 下面是一篇关于如何实现它的文章: 这回答了你的问题 编辑:Arg被2分钟击败。我很慢。哦,这里有另一个链接,提供一种替代方法您的web服务器需要知道如何处理此类URL。大多数web服务器软件都有一个扩展,允许在内部重写请求的URL 对于Apache的web服务器,有一个允许基于规则的URL重写的服务器。在您的情况下,您可以使用.htaccess文件中的以下规则在内部将此类请求的U

如何使用户系统
example.com/username
如果您使用的是Apache,则需要使用mod_rewrite

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

这回答了你的问题


编辑:Arg被2分钟击败。我很慢。哦,这里有另一个链接,提供一种替代方法

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

对于Apache的web服务器,有一个允许基于规则的URL重写的服务器。在您的情况下,您可以使用.htaccess文件中的以下规则在内部将此类请求的URL路径重写为user.php文件:

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

在user.php中,您可以使用
$\u SERVER['REQUEST\u URI']
访问请求的URI路径。要提取用户名,可以使用以下命令:

$_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$username = substr($_SERVER['REQUEST_URI_PATH'], 1);
现在,您只需要调整应用程序以提供正确的URL,因为mod_rewrite只能重写传入的请求,而不能重写传出的响应


但除此之外,我更愿意建议使用不同前缀的URI设计,如
/user/…
。否则,用户可能会选择与现有URL冲突的URL,如
/index.html
/robots.txt
/sitemap.xml
,等等。

我怎么做?像这样吗?我建议您使用路径前缀,如
/user/…
,以避免与其他现有URL(如
/register
)冲突。
$_SERVER['REQUEST_URI_PATH'] = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
$username = substr($_SERVER['REQUEST_URI_PATH'], 1);