nginx返回301 /重定向

weixin_38054840 2019-09-12 10:41:43
在所有’nginx中的重定向’问题中,我找不到如何使用regexp重定向(使用return 301和更好的no ifs). 我有一个链接到我的网站,我想删除参数结束: domain.com/article/some-sluggish-link/?report=1 #number at end 正则表达式找到这个: \?report=\d*$ 为此我想要301重定向到: domain.com/article/some-sluggish-link/ 我nginx.conf我有3个重定向: server { listen 80; server_name subdomain.example.com.; #just one subdomain } server { listen 80; server_name *.example.com; return 301 http://example.com$request_uri; } server { listen 80; server_name example.com; } 它有效;它将所有www.,ww.,aaa.和每个子域(除了1个特定域名)重定向到主domain.com 我很感激任何帮助干杯! 编辑25/03/2015 我的conf文件中已经有“location /”: location / { uwsgi_pass unix://opt/run/ps2.sock; include uwsgi_params; } 它重定向到一些django应用程序.在应用’if’子句后,它给了我无限循环! 我的问题基本上是搜索引擎优化,这意味着谷歌索引某些特定页面(带有’?report =’参数的页面),这些页面是没有此尾随参数的网址副本. 我希望googlebot停止使用robots.txt建立索引,但问题是您无法在此文件中使用正则表达式.此外,我不能说哪个网址完全是nedd重定向或停止索引因为它以某种方式随机发生…
...全文
182 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38066919 2019-09-12
  • 打赏
  • 举报
回复
我自己没试过,但它应该有效.在服务器{}块中添加: location / { if ($args !~ ^$) { rewrite ^ $request_uri? permanent; } } 这个块实际上做了什么: location /告诉nginx将这些指令应用于与根目录和子目录匹配的所有请求. if($args!〜^ $)检查URI是否包含带正则表达式的任何查询参数. 重写^ $request_uri?常驻;无需任何查询参数即可重定向到所需的URI.的?在$request_uri的末尾告诉nginx从重定向URL中剥离查询参数.

433

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧