nginx - Nginx、nuxt.js 静态生成模式和尾部斜杠重定向
问题描述
我目前在为 nuxt.js 生成的站点正确配置我的 Nginx 时遇到问题。我想要实现的是以下
/magazin -> /magazin/index.html
/magazin/ -> 301 /magazin
/magazin/artikel/titel-goes-here -> /magazin/artikel/titel-goes-here/index.html
/magazin/artikel/titel-goes-here/ -> 301 /magazin/artikel/titel-goes-here
目前这是相反的方式。
如果我是正确的,我不应该使用代理传递到例如带有 express 的 pm2 实例等,因为它破坏了静态站点生成的感觉。
但是我怎样才能让这个页面结构正常工作,因为出于 SEO 的原因,我需要与我们的旧服务相同的 url,它使用了 Angular Universal SSR
我当前的配置是:
location ^~ /magazin {
root /path/to/dist;
index index.html ;
}
如果我添加类似
rewrite ^(.+)/+$ $1 permanent;
我得到一个无限的 301 循环
谢谢您的帮助
解决方案
您不能使用内置index
指令,因为它以相反的方式工作(如您所见)。
您可以使用try_files
来测试index.html
文件是否存在。使用命名location
来处理重定向。
例如:
location ^~ /magazin {
root /path/to/dist;
try_files $uri $uri/index.html @rewrite;
}
location @rewrite {
rewrite ^(.+)/$ $1 permanent;
}
有关详细信息,请参阅此文档。
推荐阅读
- excel - 索引精确词匹配,当没有匹配结果“”而不是0?
- ktor - 如何使用 Ktor 和 kotlinx 序列化获取 HttpCall 的状态码
- android - Google 发布前报告 - 多个项目具有相同的描述
- r - 图片链接是我的编码。如何制作合适的好图表?
- javascript - Javascript从日期减/加1个月
- python - Heroku - Python - Matplotlib
- html - 有没有用例
- angular - Angular 9:如果在动画结束之前再次触发,如何重新启动动画
- angular - 每次我创建一个新的 Angular 项目时,它都会给我 5k 次提交
- java - Spring缓存默认大小