在Nginx中,如何在重写规则中的问号前添加尾部斜杠?
我成功地在URL的末尾添加了斜杠。 A如下:
http://test/xx --> http://test/xx/
但我无法在问号前添加尾部斜杠。如下:
http://test/xx?id=2 --> http://test/xx/?id=2
我尝试了以下内容:
server {
listen 34044;
# add trailing slash to url end
rewrite ^([^.\?]*[^/])$ $1/ permanent;
# add trailing slash before question mark
rewrite "^(.*)([^/]{1})\?(.*)$" $1$2/?$3 permanent;
location / {
...
}
}
但它不会在问号之前添加斜杠。
我想,我在第二个正则表达式中有一个错误,但我看不到它。请帮忙
答案 0 :(得分:2)
在@ richard-smith发表评论后,我明白我所需要的只是一个正则表达式,如下所示:
final Root result = em.createQuery(query).getSingleResult(); //Since we are getting results using primary key and distinct, we then use getSingleResult
final Collection rootCollection = result.getCollection();
它可以正常工作:向所有URL添加尾部斜杠,包括在'?'之前的尾部斜杠。标志。并且它不会破坏资源链接,例如https://my-site/styles.css。