您当前的位置是:首页-SEO宝典

重定向的参数处理问题

【发表于】:2011/6/1 23:06:00  已被访问:194次
在写rewrite重定向规则时,碰到了这个关于重定向的参数处理问题。默认的情况下,Nginx在进行rewrite后都会自动添加上旧地址中的参数部分,而这对于重定向到的新地址来说可能是多余。虽然这也不会对重定向的结果造成多少影响,但当你注意到新地址中包含有多余的“?xxx=xxx”时,心里总还是会觉得不爽。那么该如何来处理这部分的内容呢?看了下面两个简单的例子很容易搞懂。
例如:
把http://example.com/test.asp?para=xxx 重定向到 http://example.com/new
若按照默认的写法:rewrite ^/test.asp(.*) /new permanent;
重定向后的结果是:http://example.com/new?para=xxx
如果改写成:rewrite ^/test.asp(.*) /new? permanent;
那结果就是:http://example.com/new
所以,关键点就在于“?”这个尾缀。假如又想保留某个特定的参数,那又该如何呢?可以利用Nginx本身就带有的$arg_PARAMETER参数来实现。
例如:
把http://example.com/test.asp?para=xxx&p=xx 重写向到 http://example.com/new?p=xx
可以写成:rewrite  ^/test.asp   /new?p=$arg_p?  permanent;
只求结果的朋友可以直接忽略前面的内容,看这里:
rewrite  ^/test.asp  /new  permanent;       //重写向带参数的地址
rewrite  ^/test.asp  /new?  permanent;      //重定向后不带参数
rewrite  ^/test.asp   /new?id=$arg_id?  permanent;    //重定向后带指定的参数
编辑:汕尾网络公司
 
上下篇: Nginx泛域名解析及Rewrite重定向普通页面及带参数的页面 八种方法解决增加网站关键词密度问题

最新推荐信息