询问一个nginx的技术问题

2011-11-04 00:07:05 +08:00
 Kirkcong
例子:用户访问 www.abc.com/?123 例如这样的url,其实和访问www.abc.com无异

nginx下,有办法当用户访问这样的url的时候,自动跳转为www.abc.com么?
4428 次点击
所在节点    NGINX
8 条回复
Livid
2011-11-04 00:09:15 +08:00
不建议做这样的跳转,因为会产生一些你预料不到的问题,而且跳转必然会减慢反应速度。
Kirkcong
2011-11-04 00:12:22 +08:00
@Livid 我比较蠢。
我在页面增加了微博的评论箱,结果是,微博用户看到的是www.abc.com/?123,在里面评论,而一般用户进入的是www.abc.com

这样导致,一篇文章,两批用户看到的微博评论箱,一个是空,一个是满屏的讨论。

还没想到其他解决办法。
Livid
2011-11-04 00:15:42 +08:00
任何一篇文章应该只有一个 URL。在任何地方链接这篇文章的时候,都是使用同一个 URL,这样应该就好了吧。
Kirkcong
2011-11-04 00:21:32 +08:00
@Livid 因为可能是用户将文章分享到微博等等,这些是含有/video/13827.html?jtss=renren这样的。
Ricepig
2011-11-04 00:48:20 +08:00
可以的,用正则。就是比较麻烦,确实也如 @Livid 的说法,有副作用
Kirkcong
2011-11-04 01:08:56 +08:00
@Ricepig 这样的情况并不多,我觉得可以接受
不知道如何用正则rewrite写:)
keakon
2011-11-04 01:33:57 +08:00
技术上来说,2个URI完全不一样,可以显示成完全不同的网页…

举个最简单的例子
https://www.google.com/https://www.google.com/?q=ooxx 不一样
https://www.google.com/searchhttps://www.google.com/search?q=ooxx 更不一样

不过对于你自己的网站,既然都是.html结尾,只要你自己不关心查询字符串,还是可以301的
clowwindy
2011-11-04 16:31:54 +08:00
if ($args ~ ^123$){
rewrite ^ /? permanent;
}

不过,为何要根据不同的参数来选择是否显示评论呢?在程序里统一会更好,把特殊规则放在web服务器配置文件里,会增加维护的成本。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/20712

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX