是否可以在 Rails 应用程序之外设置重定向规则? [关闭]

Posted

技术标签:

【中文标题】是否可以在 Rails 应用程序之外设置重定向规则? [关闭]【英文标题】:Is it possible to set up a redirection rules outside Rails application? [closed] 【发布时间】:2014-03-27 16:30:07 【问题描述】:

我有一个 Rails 应用程序,它运行良好。对于某些特定页面,当用户请求该页面时,我想将其重定向到其他页面,但我想要做的是重定向 outside Rails 代码,所以最后的设置必须在 rails 之外代码本身。 可能有一个 htaccess 文件可以修改为外部文件以重定向到其他页面,但到目前为止我还没有使用 rails 这样做。

所以,问题是 - 这可能吗?

【问题讨论】:

什么是“在 Rails 代码之外进行重定向”? 我不想对 Rails 代码本身进行任何更改以进行重定向。有没有办法在 Rails 代码之外做到这一点?这就是我的意思 【参考方案1】:

您需要在请求到达 Rails 应用程序之前对其进行处理。例如,您可以在您正在使用的 HTTP 服务器(nginx、apache 等)的配置中创建重写规则。

查看这些链接:

How to redirect in apache? How to redirect a url in NGINX

如果您无权访问您的服务器配置(例如,您在 Heroku 上),您可以使用 refraction gem (https://github.com/joshsusser/refraction)。它是一个中间件,所以实际上你将这个重定向逻辑放在 Rails 中,但至少它不会影响你的控制器。

【讨论】:

谢谢迈克尔。这就是我需要的! :) 切中要害 :) 附注带有项目符号列表的漂亮样式;)【参考方案2】:

Rails 允许在 redirect_to 中使用外部 URL,因此您可以执行以下操作:

redirect_to "http://www.example.com/interesting_page"

如果那是你要找的。​​p>

【讨论】:

谢谢zwippie,但是有没有办法在rails应用程序之外定义重定向规则,比如在使用rails的网站上定义htaccess或类似的东西

以上是关于是否可以在 Rails 应用程序之外设置重定向规则? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Rails设置超时立即重定向

从 YML 文件设置 rails 重定向

Rails respond_to 重定向不起作用

Ruby-on-Rails:如何摆脱“你被重定向”页面

是否可以从URL创建一个重定向规则,斜杠为没有它的一个?

Kong作为重定向服务