【问题标题】:How to make redirect only without query parameters on nginx?如何在 nginx 上仅在没有查询参数的情况下进行重定向?
【发布时间】:2019-09-25 15:57:11
【问题描述】:

只有当它们没有参数时,我才会尝试从位置进行重定向。如果它们有参数,服务器应该返回带有该参数的 URI。

我尝试了这个选项,但是通过这个设置,从没有参数的页面重定向可以正常工作,并且带有参数的 URL 返回 404:

    location = /foo/ {
        if ($args = "") {
            return 301 domain.com;
        }
    }

【问题讨论】:

    标签: nginx


    【解决方案1】:

    使用$is_args

    如果请求行有参数,否则为空字符串

    location = /foo/ {
        if ($is_args = "") {
            return 301 domain.com;
        }
    }
    

    【讨论】:

    • 这确实有效,但您需要删除块 error_page 404 [更新] 我想说的是,您要么创建一个 /foo 文件,要么在上面执行此操作 ^
    • 在我们的网站上,所有搜索查询都有类似 /catalog/?search=something 的 URL。页面 /catalog/ 没有任何内容。我想从 domain.com/catalog/ 重定向到 domain.com 因为这需要我们的 SEO 专家。
    猜你喜欢
    • 2020-07-04
    • 2019-10-15
    • 1970-01-01
    • 2012-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-30
    相关资源
    最近更新 更多