我让Nginx托管了一些静态内容
location /help/ {
default_type text/html;
alias /etc/nginx/html/help;
index index.html;
}
如果提出请求,效果很好
它将加载默认页面,并且可以正常工作。
但是,如果我请求http://www.blah.com/help/?_ga=xxxxxxxx .....
查询参数被请求并返回404。
所以实际上我的查询是我可以发出此请求并“忽略”查询参数,还是需要考虑其他方法-
例如代理密码和URL重写?
答案 0 :(得分:0)
好吧,经过长时间的搜索,我自己解决了这个问题。
location /help {
if ($args ~* "_ga="){
rewrite ^(.*)$ $uri? permanent;
}
default_type text/html;
alias /etc/nginx/html/help;
index index.html;
}
万一有人遇到同样的问题
答案 1 :(得分:0)
如果条件评估需要进行正则表达式比较,则会为请求增加不必要的处理时间。
重新编写然后添加另一个正则表达式捕获并触发对重新编写的uri的新评估,从而增加了不必要的开销。
删除查询字符串实际上非常容易。它存储在$args
变量中,因此请清除以下内容:
location /help/ {
set $args '';
....