技术解析

询问一个nginx的技术问题
0
1975-02-22 05:18:55
idczone
例子:用户访问 www.abc.com/?123 例如这样的url,其实和访问www.abc.com无异

nginx下,有办法当用户访问这样美国服务器的url的时候,自动跳转为www.abc.com么?
不建议做这样的跳转,因为会产生一些你预料不到的问题,而且跳转必然会减慢反应速度。

我比较蠢。
我在页面增加了微博的评论箱,结果是,微博用户看到的是www.abc.com/?123,在里面评论,而一般用户进入的是www.abc.com
这样导致,一篇文章,两批用户看到的微博评论箱,一个是空,一个是满屏的讨论。
还没想到其他解决办法。

任何一篇文章应该只有一个 URL。在任何地方链接这篇文章的时候,都是使用同一个 URL,这样应该就好了吧。

因为可能是用户将文章分享到微博等等,这些是含有/video/13827.html?jtss=renren这样的。

可以的,用正则。就是比较麻烦,确实也如 的说法,有副作用

这样的情况并不多,我觉得可以接受
不知道如何用正则rewrite写:)

技术上来说,2个URI完全不一样,可以显示成完全不同的网页…
举个最简单的例子
https://www.google.com/ 和 https://www.google.com/?q=ooxx 不一样
https://www.google.com/search 和 https://www.google.com/search?q=ooxx 更不一样
不过对于你自己的网站,既然都是.html结尾,只要你自己不关心查询字符串,还是可以301的

if ($args ~ ^123$){
rewrite ^ /? permanent;
}
不过,为何要根据不同的参数来选择是否显示评论呢?在程序里统一会更好,把特殊规则放在web服务器配置文件里,会增加维护的成本。

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服