Rails 3 response_to: html и предотвращение двойного контента - PullRequest
0 голосов
/ 06 марта 2012

Я пытаюсь предотвратить двойной контент в сочетании с response_to. Поэтому я добавил к своему контроллеру:

respond_to :html

В сочетании с response_with это до сих пор прекрасно работает, но пользователь может по-прежнему получать доступ к моим страницам, используя:

  • / моя / страницы
  • / my / page / или
  • / мой / page.html

Я бы хотел ограничить это одним из них (предпочитая первое). Полное удаление форматов не является решением, потому что я мог бы когда-нибудь захотеть ответить - с помощью json или xml.

Заранее благодарим за любой совет!

1 Ответ

0 голосов
/ 06 марта 2012

Это будет довольно неприятно, а также сделает ваш сайт более трудным для пользователей.Если для этого нет действительно веской причины, я просто поработаю с настройками Rails по умолчанию и приму тот факт, что у вас много разных URL-адресов, указывающих на один ресурс.Это действительно не должно повредить вам.

Опять же, вы, вероятно, не должны этого делать.Но если вы действительно хотите, вы можете поиграть с route.rb, чтобы вручную создать нужные маршруты.Обратитесь к Руководству по маршрутизации Rails для получения дополнительной информации о том, как генерировать маршруты Rails, которые больше похожи на ваши.

Тем не менее, этого, вероятно, будет недостаточно, чтобы избавиться отmy / page / и my / page, указывающие на одно и то же место.Если это действительно, действительно необходимо, я бы рассмотрел возможность полного отказа от Rails и использования другой инфраструктуры, такой как Sinatra, где у вас есть очень детальный контроль над маршрутизацией (поскольку среда вообще не делает предположений о маршрутизации).

Но, вероятно, лучше всего просто принять маршруты такими, какие они есть, и двигаться дальше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...