2017-05-03 5 views
1

現在、このURLのページは/tires?product_subtype=8です。ページコンテンツは、特定の製品サブタイプによってフィルタリングされたタイヤリストです。 SEOの目的のために、このURLを介してアクセス可能なページも必要です:/lawn-and-gardenSEOの目的で2つのURLでページにアクセスできるようにするにはどうすればよいですか?

これを行う簡単な方法はありますか?私たちはRuby on RailsフレームワークとNginxを使用しています。

私たちは、ページの多くにこれを実行されます。

/tires?product_subtype=1 - /industrial-tires 
/tires?product_subtype=2 - /commercial-tires 
etc... 
+0

あなたのコントローラで 'params [:product_subtype]'をテストし、適切なページにリダイレクトする必要があると思います。 – moveson

+0

@moveson問題は、元のURLからアクセスできるページが必要であるということです。私たちはそれらを他のURLにリダイレクトしたくありません。例:ユーザーが '/ tires?product_subtype = 8'を訪れた場合、URLは同じままです。ユーザーが '/ lawn-and-garden'を訪れると、URLも同じままになります。リダイレクトは発生しません。 –

+0

その場合、各コントローラを同じビューをレンダリングするだけで済みます。 – moveson

答えて

1

ルートの両方がconfig/routes.rbで同じcontroller#actionへのルートそれらを、同じタスクを実行している場合。例えば

get 'tires', to: 'welcome#index' 
get 'lawn-and-garden', to: 'welcome#index' 

UPDATE:

私は右のあなたを理解していれば、あなたは(クエリのparamなし)の両方のルート/tires?product_subtype=1など/industrial-tiresでアクセスできるようにページをしたいと思います。私たちのプロジェクトの1つに似たようなことをしました。私たちはこれらのかなりのURLをランディングページと呼びます。あなたは非常に少数のランディングページの一定の数を持っている場合は

  • :私はこれらのランディングページを実装するために2つのオプションを考えることができ

    対応するサブタイプのビューをレンダリングして、それぞれのアクションを作成します。

    def industrial_tires 
        ## render view filtered for product_subtype = 1 
    end 
    
    def commercial_tires 
        ## render view filtered for product_subtype = 2 
    end 
    ## .... so on 
    
  • あなたはランディングページの多く/可変数がある場合:

    を、あなたは条件付きでスラグに基づいて特定のビューをレンダリングするすべてのルートを優先度の低いキャッチを作成し、マッピングされたアクション内する必要があります。

    get '*path', to: 'tires#landing_page' ## in routes.rb at the end of the file 
    
    def landing_page 
        ## "path" would be equal to industrial-tires or commercial-tires, etc. 
        ## conditionally specify view filtered for product_subtype based on path value 
    end 
    
+0

私は、OPが 'product_subtype'パラメータによって異なる方法でリダイレクトしたいと思っています。 – moveson

+0

これは 'product_subtype'クエリーストリングのパラメータを考慮する必要があるので動作しません。 –

+0

@ JohnKevinM.Bascoこれは、同じクエリ文字列パラメータを2番目のルートに渡すのではなく、 '/ tires?product_subtype = 1'に相当する' industrial-trial'、 'commercial-tires ''/tires?product_subtype = 2'などと同等です。 –

1

私は、単一のCategoriesControllerにあなたのルートあなたの様々なカテゴリーを提案し、各カテゴリのためにアクションを作成すると思います。

/routes.rb 

... 
get 'lawn-and-garden', to: 'categories#lawn_and_garden' 
get 'industrial-tires', to: 'categories#industrial_tires' 
... 

/categories_controller.rb 

def lawn_and_garden 
    params[:product_subtype] = '8' 
    @tires = YourTireFilter.search(params) 
    render 'tires/index' 
end 

def industrial_tires 
    params[:product_subtype] = '1' 
    @tires = YourTireFilter.search(params) 
    render 'tires/index' 
end 

他のURLについても同様です。

関連する問題