【发布时间】: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