伪静态地址获取用户头像

项目需求:使用伪静态地址 example.com/avatar/xxx (xxx为user id)的形式,直接获取用户头像图片

获取图片信息

首先需要创建一个get请求接口来根据user_id拿到用户头像的图片信息,路由地址为/app/user/avatar

1
2
3
4
5
6
7
8
$user_id = $_GET['user_id'];

$avatar_img = DB::table('users')->where('user_id', $user_id)->pluck('avatar_img');

header("Content-type: image/png;charset=utf-8");

echo file_get_contents($avatar_img, true);
exit;

这样就可以根据/app/user/avatar?user_id=xxx的方式拿到图片,接下来需要做的就是修改服务器配置,将伪静态地址重定向到api地址

重定向

服务器使用的是nginx服务器,其他的就不介绍了
首先找到配置文件nginx.conf,默认安装位置位于/etc/nginx,不过一般不要直接修改这个,创建一个单独的conf文件,然后在nginx.conf中使用include引入使用。
在配置文件中添加一下配置:

1
2
3
location / {
rewrite ^/avatar/(.*)$ /app/user/avatar?user_id=$1 last;
}

保存后退出编辑模式,重启nginx

1
nginx -s reload

补充一下修改配置文件会用到的命令

1
2
3
4
vi nginx.conf   // 文本编辑器打开文件
set num // 显示编辑器行号
:w // 保存
:wq! // 保存后退出
文章目录
  1. 1. 获取图片信息
  2. 2. 重定向
|