2012-01-25 3 views
1

routes.rbファイルでルートを定義すると、別の方法で定義した同じコントローラ#アクションに実際にアクセスできます。例えばRails Routes - 異なるURLから同じコントローラ#アクションへのアクセスを防止しますか?

map.connect "post/show/:id/:tag_title", :controller => "post", :action => "show", :requirements => {:id => /\d+/} 

これは、あなたが

server.com/post/show/1234/tag_title-whatever 

に行くことによって、ポスト#ショーにアクセスすることができますしかし、あなたはまた、

server.com/post/show?id=1234&tag_title=tag_title-whatever 

に行くことによって、ポスト#ショーにアクセスできることを意味しますそれは単純なケースですが、あなたはそのアイデアを得ることができます。これは検索エンジンに問題を引き起こしませんか?もし私が間違っていないならば、それらの2つのURLは、おそらく二重化されたページとみなされる可能性があります。

これを防ぐ方法はありますか?定義済みのルートにアクセスするようにRailsに指示するのですか?どう定義されていますか?

+0

代替クエリ文字列メソッドよりもポストが/ id/showの場合は動作しません。 – klochner

答えて

1

何かにアクセスできるということは、Googleによってインデックスが作成されることを意味するものではありません。別の言葉で言わない限り、すべてのRailsヘルパー関数は/post/show/..リンクを使用します。特定のリソースにリンクしていない限り、Googleがコンテンツをスパイダーリングする可能性は非常に低いです。

言われているように、私はそれが索引付けを終えるかどうかは重要ではないとも言えます。

関連する問題