nginx - 在 Nginx 中创建一个 301 重定向,从某些 URL 路径中删除“.html”结尾?
问题描述
如何在 Nginx 中创建一个 301 重定向,.html
从某些 URL 中删除结尾?
我想将所有博客文章 (301) 重定向到相同的 URL,但没有.html
.
例如:
www.mydomain.com/blog/post1.html -> www.mydomain.com/blog/post1 www.mydomain.com/blog/post2.html -> www.mydomain.com/blog/post2
注意:我只想html
从 www.mydomain.com/blog/中删除并保留其余的站点路径。
我设法为每个帖子创建了一个重定向,但肯定有比这更好的方法:
rewrite ^/blog/post1.html$ https://www.mydomain.co.uk/blog/post1 permanent;
解决方案
location ~ ^/(.*)\.html$ {
return 301 https://$host/$1;
}
仅对于博客子路径,这也应该有效:
location ~ ^/blog/(.*)\.html$ {
return 301 https://$host/blog/$1;
}
应该做的伎俩。
~ 表示正则表达式。
^ 和 $ 表示正则表达式的开始和结束。
(.*) 表示捕获任意数量的未定义字符( . 表示未定义 * 表示任意数量)
.html 表示以 .html 结尾(哇)
然后将其全部重定向到 https://$host/$1 ,其中 host 是通过的主机, $1 是位置正则表达式中捕获的字符串。
试试看,让我知道它是否适用于您的环境。
推荐阅读
- spring - 登录后如何在spring boot auth2 facebook中重定向到特定的uri
- javascript - 在二维数组中查找数组的索引?
- php - PHP在连接时删除正斜杠
- python - 比较列表中的两个列表,如果列表 b index[x] 在 a 中做某事
- dart - 如果没有立即完成等待,Dart File.writeAsString() 方法不会写入文件
- r - 名称与列表名称相同的字符向量
- java - JavaFx 在邮件中将临时 excel 文件作为附件发送
- php - 如何从传入的 JSON 数据生成表 [Laravel, Ajax]
- mongodb - 如何在 cosmos db 中创建除 admin 以外的数据库?
- mysql - 如何从 Go 结构生成 MySQL 表