【问题标题】:Rails 3 Routing to Add String to Home URLRails 3 路由将字符串添加到主页 URL
【发布时间】:2011-07-20 02:02:06
【问题描述】:

使用 Rails 3 路由,我希望所有访问者都访问主页

http//mysite.com/

查看网址

http//mysite.com/mykeyword

在他们的浏览器 URL 中。

换句话说,所有对主页的访问都会被重定向到

http//mysite.com/mykeyword

这与典型路线大致相反

root :to => "home#index"

match '/' => 'home#index'

从主页 URL 中删除任何控制器名称。

相反,我希望每次访问网站主页时都在 URL 中包含“mykeyword”。

怎么做?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 routing url-rewriting


    【解决方案1】:

    试试这个:

    match '/mykeyword' => "home#index"
    

    您希望访问者仍然在主页上,但网址显示“www.mysite.com/mykeyword”对吗?如果是这样,那应该可以。

    【讨论】:

    • 不完全。它显示 http//mysite.com/mykeyword 的主页,但 http//mysite.com/ 的访问者仍然看到“http//mysite.com/”而没有任何附加字符串。我希望 http//mysite.com/ 的所有访问者都能看到“http//mysite.com/mykeyword”(强制附加附加字符串)。
    • 是的,然后将我的代码与 Jarrett 的代码结合起来,这应该会给你答案。
    • 感谢贾斯汀,感谢您的贡献。
    【解决方案2】:

    贾斯汀是正确的,但我相信你也想要一个重定向。为此:

    match "/" => redirect("/mykeyword")
    

    【讨论】:

    • 啊,是的,我试图弄清楚那部分:P
    • 贾瑞特的回答是完整的。它看起来像这样: match '/mykeyword' => "home#index" match "/" => redirect("/mykeyword") # root :to => 'home#index' 注意:如果 "root :to => 'home#index'" 在其他路线之前。
    • 我可能错了,但我认为您不需要root :to => 'home#index',只要您已经通过重定向将/ 与您的主页匹配。
    • 贾斯汀,没错,这就是为什么我把它显示为注释掉的原因。以防有人认为仍然需要它。感谢您澄清这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    • 2013-07-23
    • 1970-01-01
    • 2017-06-26
    • 2011-10-19
    相关资源
    最近更新 更多