我在路径上有如下图片:
/0/1/2/3/4/01234/screenshots/1.jpg
访问它的 URL 如下:
/static/0/1/2/3/4/01234/screenshots/1.jpg
我希望它看起来像这样:
/0/1/2/3/4/01234/a-desc-of-the-picture/screenshots/1.jpg
或者类似的东西。目标是在 URL 中包含关键字以进行 SEO。
但想告诉 nginx 提供服务
/0/1/2/3/4/01234/screenshots/1.jpg
当他看到:
/0/1/2/3/4/01234/a-desc-of-the-picture/screenshots/1.jpg
我不希望它将用户重定向到正确的 URL,我只希望它在内部进行映射。
有可能吗?我该如何实现?
我见过类似的事情这里,但我找不到将其应用于我的情况的方法。如果能提供一些新手友好的功能就更好了。
答案1
假设您有一个可正则表达式的基本路径,您可以执行以下操作:
location ~ ^/static/(././././.....)/[^/]+/(.*)$ {
alias /location/on/filesystem/$1/$2;
}
Nginx 的别名指令比 Apache 的同类产品更灵活。