【问题标题】:nginx rewrite: URL query removalnginx 重写:URL 查询删除
【发布时间】:2014-02-24 12:04:42
【问题描述】:

您好,我已经使用 nginx 实现了一个 Rails 应用程序并部署在 Amazon Web Services 上。

我为 301 重定向写了不同的规则。

nginx.conf中的以下内容:

rewrite (?i)^/abc/HomePage.aspx(.*) /#!/Home$1 permanent;

但是我能够重定向到主页,但 URL 中有尾随字符,这可能是动态的。

例如,如果 URL(旧站点)是 http://x3.com/abc/HomePage.aspx?_=72HNtUhJkGN5yXngjof0jLZ1yv7ykDfnNwsiYcgx9xqpVoLH0UvC5nneQnFfwTQnnC5w4nYtXuBc7DIA16BxkA==

它正在登陆http://www.x3.com/#!/Home?_=72HNtUhJkGN5yXngjof0jLZ1yv7ykDfnNwsiYcgx9xqpVoLH0UvC5nneQnFfwTQnnC5w4nYtXuBc7DIA16BxkA

我只想删除_=72HNtUhJkGN5yXngjof0jLZ1yv7ykDfnNwsiYcgx9xqpVoLH0UvC5nneQnFfwTQnnC5w4nYtXuBc7DIA16BxkA的尾随部分

登陆http://www.x3.com/#!/Home

我如何做到这一点?

【问题讨论】:

  • 这看起来像一个 base64 编码的字符串。填充(== 字符)被截断,因为 URL 中的 = 用于分配参数。您应该对字符串进行 urlencode,以便等号变为 '%3D'。
  • @alkar 但这将在我的问题中实现什么......我实际上想重定向。我不关心 .aspx 之后会发生什么并想丢弃它。你有什么解决方案
  • 如果你这样做,我相信重定向应该可以工作。您可以尝试访问以下 URL 并查看重定向是否有效吗? x3.com/#!/…
  • @alkar 我得到 /Home?_=72HNtUhJkGN5yXngjof0jLZ1yv7ykDfnNwsiYcgx9xqpVoLH0UvC5nneQnFfwTQnnC5w4nYtXuBc7DIA16BxkA%3D%3D
  • 糟糕,抱歉,误读了一点问题。从您在 nginx 中的重定向语句中尝试删除 $1。它应该可以解决这个问题。

标签: regex redirect amazon-web-services nginx rewrite


【解决方案1】:

您需要根据docs在重写网址中添加尾随?

rewrite (?i)^/abc/HomePage.aspx(.*) /#!/Home$1? permanent;

确保在测试前清除浏览器缓存。

另外,关于permanent 重定向,请参阅此answer

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-11-13
    • 2013-12-24
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多