问题标签 [rack-rewrite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1008 浏览

ruby-on-rails - 如何使用机架重写将 www 添加到 url?

如果用户不使用它,我想重定向我的 rails 应用程序以将 www 添加到 url。我发现这个网站将其删除,但我想做相反的事情:

http://steve.dynedge.co.uk/2010/03/03/using-rackrewrite-to-remove-the-www/

0 投票
2 回答
299 浏览

ruby-on-rails - 是否可以使用 rack-rewrite 仅重写 POST 请求?

而已。我只需要重定向 POST 请求。就像是:

可能吗?

0 投票
3 回答
1184 浏览

ruby-on-rails - 需要将 WP 博客与 Heroku 上的 Rails 应用程序链接

我有一个客户想将他的 Rails 应用程序迁移到 Heroku。然而,客户还有一个与他的域相关联的博客,该博客在 WordPress 上运行。目前,WordPress 博客与 Rails 应用程序一起运行良好,但是一旦我们迁移到 Heroku,这显然是不可能的。

应用程序的 url 类似于http://mydomain.com,博客的 url 类似于http://mydomain/blog

我意识到最好的长期解决方案是以像 Toto 或 Jekyll 这样的 Rails 格式重做博客。但在短期内,继续托管 WP 博客的最佳方式是什么?客户不希望博客位于子域上,而是出于 SEO 原因以及博客流量保持在 mydomain/blog 上。我有两个想法:

  1. 在旧(非 Heroku)服务器上使用 rack_rewrite 或 refraction(或只是一个普通的旧 301 和 Apache mod_rewrite)将主 url 从旧​​站点重定向到 Heroku。在这种情况下,我可以让 Wordpress 博客在原处愉快地运行。我认为??如果我这样做,是否有理由选择其中一个选项(rack_rewrite、refraction 或 mod_rewrite)而不是其他选项?

  2. 切换 DNS 信息以指向 Heroku 站点,然后使用从博客到旧站点的 301 重定向。但是我必须在子域上获取旧的(非 Heroku)站点并使用某种重写规则,所以它看起来不是子域。

这些方法中的任何一种都是可取的,还是有另一种更容易让我错过的方法?

0 投票
1 回答
631 浏览

ruby-on-rails - 如何使用 rack-rewrite 删除 .html(如果文件存在)?

我不是 Rubyist,但我更喜欢 Jekyll,我可以轻松地结合 Heroku 和 Git 创建一个“支持博客”的网站。

我想使用 Rack-Rewrite (或者如果有更好的方法可以这样做,我很乐意使用它)将 '/foo' 重写为 '/foo.html' (即,附加 .html但不更改浏览器),但前提是它不是现有文件或文件夹。

认为 rewrite %r{/(.*)}, '/$1.html'这是我前半部分所需要的(即,将 /foo 重写为 /foo.html),但我正在努力处理有条件的“如果文件不存在”部分。

如果它有帮助,在 IIS 下,我有以下相同的操作:

0 投票
0 回答
163 浏览

ruby-on-rails - 使用 Rack::Rewrite 重写 TLD 之后的周期

我正在使用rack-rewrite gem 在 Rails 应用程序中重写我的 url。

我要避免的问题之一是在 TLD 之后有一个尾随期。

现在我不能 100% 确定这对 google juice 是否重要,但对于Disqus和我的视频播放器来说确实很重要,它会根据请求的域验证许可证。

我看到的问题是机架环境没有在 SERVER_NAME 变量中显示这个尾随句点。

这是我在请求时在日志中看到的内容http://example.com./foo

如您所见,没有一个变量.在域之后包含尾随。

这甚至可以通过 Rack::Rewrite 实现吗?

0 投票
1 回答
1040 浏览

ruby-on-rails - Rails:为 Heroku 正确设置 DNS、Rack-rewrite 等

我已经查看了整个互联网,但无法获得一个最终解决方案来解决我期望的 DNS 等 100% 正确设置以在 Heroku.com 上获得以下结果:

我可以从任何地方得到一些帮助,但没有任何结论可以解决从 DNS 到机架重写的整个问题,所以这就是我在这里问的原因(我的注册商和 Heroku 的支持只能给我“他们的一部分” )。

据我了解,需要做的是:

  1. 将 mydomain.com 和 www.mydomain.com 添加到 Heroku 的自定义域

  2. 在我的注册商 DNS 中将CNAME 更改为http://myapp.herokuapp.com 。问题:会使用 CNAME 重定向到 myapp.herokuapp.com 的“www”和“*”吗?

  3. 添加“@”DNS 记录以处理裸域请求 (http://mydomain.com)。由于这不会通过 CNAME 完成,因此我使用https://devcenter.heroku.com/articles/custom-domains上的 IP 号码,尽管根据文章它们存在严重的正常运行时间问题。

-- 1-3 给我留下了一个网站,它将同时为http://mydomain.comhttp://www.mydomain.com提供服务,内容位于http://myapp.herokuapp.com

C。现在,我想将所有内容从http://mydomain.com重定向到http://www.mydomain.com,根据 Heroku 支持,这应该通过 rack-rewrite (https://github.com/jtrupiano /机架重写)。使用那里的示例,代码应该是:

然而,这为我创造了一个永恒的循环。

所以,我现在的问题是:为了实现这个设置,Heroku 和 DNS 设置的正确工作流程是什么?

解决这个问题非常困难,因为通过反复试验尝试不同的 DNS 设置非常困难(很难知道它们是否已经通过)。

0 投票
1 回答
395 浏览

ruby - 如何使用 rack-rewrite 重写到不同的域?

我想重写另一个域,以便http://domain1.com/abc指向http://domain2.com/xyz。这是我的代码:

但是在我打开http://domain1.com/abc之后,我被指向 http://domain1.com/http:/domain2.com/xyz。我怎样才能重写它以使其指向正确的位置?

0 投票
3 回答
784 浏览

ruby-on-rails - 机架重写代码以将 https 重定向到 http(在 heroku 上)

不知何故,谷歌将我的主页索引为https://mydomain.com。当您进行 site:mydomain.com 搜索时,第一个结果是https://mydomain.com并且我没有 SSL 证书并且不想执行 https。当然,现在我们的访问者会在他们的浏览器中收到丑陋的警告(因为 heroku 默认提供他们的 *.heroku 证书)。

看来我可以使用 rack-rewrite gem 进行 301 重定向,但我就是找不到方法。

那么,将所有 https:// 重定向到 http:// 的机架重写配方是什么?我能找到的只是关于如何做相反的事情或进行规范重定向的信息。

0 投票
1 回答
811 浏览

ruby-on-rails - rack-rewrite 将所有子域重定向到根域(根域除外)

如何做到这一点:

在机架重写语法中?

0 投票
1 回答
513 浏览

ruby - 将查询字符串添加到机架重写响应

我有一个简单的 301 重定向来捕获我为我的网站注册的所有非 .com 域,如下所示:

我想在响应中添加一个查询字符串,以格式添加原始域

但不能完全弄清楚如何不使服务器崩溃:) 可以完成并保留任何原始查询字符串吗?

不太可能有人会点击主域下的任何子页面,但是当我从重写中删除 $& 并用我的字符串替换它时,它会在日志中没有错误的情况下爆炸......