如何在Nginx中创建301重定向,以删除某些网址中的.html
结尾?
我想将所有博客文章(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
注意:我只想从www.mydomain.com/ 博客 /中删除html
,并保留其余的网站路径。
我设法为每个帖子创建一个重定向,但是肯定有比这更好的方法:
rewrite ^/blog/post1.html$ https://www.mydomain.co.uk/blog/post1 permanent;
答案 0 :(得分:0)
location ~ ^/(.*)\.html$ {
return 301 https://$host/$1;
}
仅对于博客子路径,这也应该起作用:
location ~ ^/blog/(.*)\.html$ {
return 301 https://$host/blog/$1;
}
应该做到这一点。
〜表示正则表达式。
^和$表示正则表达式的开始和结束。
(。*)表示捕获任意数量的不确定字符(。表示indefined *表示任意数量)
和.html表示以.html结尾(哇)
然后将其全部重定向到https:// $ host / $ 1,其中host是通过的主机,$ 1是位置正则表达式上捕获的字符串。
尝试一下,让我知道它是否在您的环境中起作用。