【发布时间】:2023-04-07 09:19:01
【问题描述】:
是否可以重写基本 URL?
例如而不是 www.host.com/ 使用 www.host.com/blah/ 作为
一个基本网址等等:
get '/' do
...
end
适用于www.host.com/blah/
我可以附加到我所有的路线 '/blah/..' 但任何宝石等。
也将无法工作。
这可以在 Rails 中轻松完成,我也希望在 Sinatra 中使用它。
【问题讨论】:
-
您使用哪些 gem 来进行重定向?
-
sinatra 身份验证。基本上我也通过 CGI 和那些复杂的东西运行 sinatra。它必须是一个更漂亮的解决方案。我正在考虑使用之前和之后的过滤器。
-
我不完全确定您要做什么:您应该能够编写您的应用程序,使其独立于基本 url,例如使用
urlhelper。然后应用程序的路径取决于您如何设置服务器,而不是 Sinatra 应用程序本身。宝石也应该可以正常工作。 -
那么让我澄清一下。我正在使用尚未完全访问的服务器。我被分配了一个目录,我可以通过 CGI 处理我的项目。因此,我收到的是 'foo/blah/',而不是在 sinatra 中收到“/”。 '/about' 变成 '/foo/blah/about' 等等。kfl62 提出了一些好的建议,我已经看过了,但是任何重定向到 '/login' 的 gem 都会失败,因为它们会重定向到 www.host.com/login而不是 www.host.com/foo/blah/login
-
我用一些例子编辑了我的答案。我仍然相信:
rewrite %r{/}, '/foo/blah'会解决您的问题。
标签: ruby url sinatra rack base