301 Перенаправить старые php-пути на новые Rails - PullRequest
1 голос
/ 20 октября 2011

Я переделываю старый сайт php в RubyOnRails (3.0.3).Существующий веб-сайт (написанный на php) уже несколько лет находится в сети и получил много ссылок и хорошо позиционируется в Google.

Теперь, поскольку я выпускаю его в Rails на том же домене, я хочустарые файлы 301 будут перенаправлены на соответствующий файл в новой версии.Что было бы лучшим способом?

Вот обстоятельства:

  • Я создаю новый веб-сайт на том же домене, где я заменяю php-версию
  • Нет логики в том, как файлы были переименованы.Например, www.domain.com/cat/home/page/helloworld.php может иметь свое соответствующее место на www.domain.com/stuff/hello-world-in-rails, а некоторые файлы были удалены и т. Д.
  • Таким образом, я хотел бы указать в таблице или аналогичной области, где один столбец - это старый путь, а другой столбец - новый путь.Когда кто-то пытается получить доступ к www.domain.com/cat/home/page/helloworld.php, ему будет 301: d до www.domain.com/stuff/hello-world-in-rails

Когда я сделал php-сайты в Wordpress, я решил эту проблему, добавив код перенаправления в каждый php-файл, указывающий на новый путь (в Wordpress).Поскольку моя Rails-установка не поддерживает php-файлы, это невозможно, однако.

Я полагаю, что mod_rewrite - мое предпочтительное оружие, но как мне его использовать?

Ответы [ 2 ]

3 голосов
/ 20 октября 2011

Вы можете управлять всеми перенаправлениями в файле маршрутов. Вот документация по маршрутам, особенно метод перенаправления будет интересен для вас!

http://guides.rubyonrails.org/routing.html#redirection

2 голосов
/ 20 октября 2011

Я бы посоветовал справиться с этой задачей с помощью Rack. Должен быть быстрым и снять нагрузку с вашего приложения rails.

Существует рубин для стойки, который называется redirect '

Позволяет обнаруживать и перенаправлять определенные URL-адреса с помощью простого массива.например,

redirect  ['/catch_url', '/redirect_url'],
          ['/catch_url2', '/redirect_url2']

ПРИМЕЧАНИЕ: репозиторий не обновлялся некоторое время, поэтому не уверен, что он все еще работает, даже если это не так, в нем не так уж много кода, и вы, вероятно, можете свернутьего собственная скорректированная версия довольно легко при необходимости.

...