SEO исправить с перенаправлениями на Ruby On Rails - PullRequest
0 голосов
/ 06 декабря 2011

Я допустил ошибку и разрешил два разных маршрута, указывающих на одно и то же место. Теперь у меня проблемы с дублированным контентом.

Новости можно просматривать двумя способами: http://website.com/posts/321 и http://website.com/news/this-is-title/321

Я хочу исправить этот беспорядок, и моя идея состоит в том, чтобы проверить, по какой ссылке идет пользователь. Например, если кто-то прошел через http://website.com/posts/321, я бы хотел перенаправить посетителя на правильный маршрут: http://website.com/news/this-is-title/321

Моя самая первая идея - проверить URL-адрес запроса на контроллере Post, а затем в предложении if принять решение о перенаправлении или просто отображении правильного представления. Это хорошая концепция?

Ответы [ 3 ]

1 голос
/ 06 декабря 2011

Я думаю, что это не самое подходящее.

Вы должны сделать это на уровне маршрутов, используя методы перенаправления .

0 голосов
/ 06 декабря 2011

В вашем posts_controller.rb шоу:

def show
  return redirect_to post_path(params[:id]) if request.fullpath.match /(your regex)/i, :status => 301, :notice => 'This page has been permanently moved'

  @post = Post.find(...)
end
  1. return redirect_to важно, потому что вы не можете вызывать redirect или отображать несколько раз
  2. соответствует регулярному выражению по запросу.
  3. , если вы очень обеспокоены SEO, установите статус 301. Это говорит поисковым системам, что страница была перемещена навсегда
  4. уведомление является необязательным и только для астетиков после перенаправления весли пользователь добавил в закладки старый адрес страницы
0 голосов
/ 06 декабря 2011

Я не думаю, что вам стоит беспокоиться, взгляните на канонический URL , если вы беспокоитесь о SEO

...