Nginx permanent重定向参数问题

Nginx permanent重定向参数问题

0人收藏此文章, 我要收藏发表于5个月前 , 已有 88次阅读 共 0个评论

项目最近改版,页面实现全部静态化。

原始的动态页面需要给个301永久重定向到静态页面上,好告诉搜索将原始的页面的权重转到新的静态页面下。

if ($query_string ~* "id=(\d+)$") {
        set $id $1;
        rewrite ^/goods\.php /goods/$id.html permanent;
  }
这样重定向后发现 当输入 http://xxx.com/goods.php?id=254 的时候会跳转到 http://xxx.com/goods/254.html?id=254下

后面看见搜索引擎的收录地址也添加了后面不必要的参数,老大叫去掉后面参数。那该怎么来处理呢?

 

 

例如:
把http://example.com/test.php?para=xxx 重定向到 http://example.com/new
若按照默认的写法:rewrite ^/test.php(.*) /new permanent;
重定向后的结果是:http://example.com/new?para=xxx
如果改写成:rewrite ^/test.php(.*) /new? permanent;
那结果就是:http://example.com/new

所以,关键点就在于“?”这个尾缀。假如又想保留某个特定的参数,那又该如何呢?可以利用Nginx本身就带有的$arg_PARAMETER参数来实现。

例如:
把http://example.com/test.php?para=xxx&p=xx 重写向到 http://example.com/new?p=xx
可以写成:rewrite  ^/test.php   /new?p=$arg_p?  permanent;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值