0

我想在我们的房屋列表页面中添加过滤(复选框)。我正在考虑通过 ajax 来实现,以防万一,但同样重要的是 URL 结构对于 seo 来说是 SEO 友好的。

一个例子:

  • 主题复选框是“近海”。网址是 domain.com/houses/nearthesea
  • 主题复选框是“idealfortwo”。网址是 domain.com/houses/idealfortwo
  • amenity 复选框是“wifi” 网址必须是 domain.com/houses/idealfortwo/wifi

有人有想法、链接、帖子等来设置它吗?

4

1 回答 1

0

不幸的是,没有真正的方法可以做到这一点,即定义具有未定义数量的路径组件的路由。您可以选择最大数量,并定义一系列路线,例如

get '/houses/:f1' => 'houses#index'
get '/houses/:f1/:f2' =>'houses#index'
...
get '/houses/:f1/:f2/:f3/:f4/:f5/:f6' =>'houses#index'  

但这会很快变得丑陋,我建议使用这样的 URL 方案:

get '/houses' => 'houses#index'

然后您的 URL 可能如下所示:

/houses?filter=goodschool,bbq,northeast

然后在您的索引操作中:

def index
  if params[:filter]
     filters = params[:filter].split(",")
     filters.each do |f|
       # do something with each term in the filter, I have no idea
     end
     @houses = House.where(.....???)
  else
     @houses = House.all
  end
end

它不会产生您所追求的 SEO 友好 URL,但我不确定这将如何影响您的情况下的 SEO。

于 2012-09-19T15:47:14.147 回答