项目需求:使用伪静态地址 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
3location / {
rewrite ^/avatar/(.*)$ /app/user/avatar?user_id=$1 last;
}
保存后退出编辑模式,重启nginx1
nginx -s reload
补充一下修改配置文件会用到的命令
1 | vi nginx.conf // 文本编辑器打开文件 |