В инфраструктуре MVC у меня есть модель с полем «идентификатор». Это поле может быть любым, используемым пользователем в качестве уникального идентификатора. Затем я использую это поле идентификатора в URL для доступа к соответствующим ресурсам.
/people/<identifier>/
В одном из таких случаев пользователь использует идентификаторы формата 00/000
. Быстрый из вас сразу же обнаружит проблему - как мы узнаем, какая часть является идентификатором, а какая часть действием?
Очевидным решением является использование экранирования URL (% 2F является соответствующим кодом). Тем не менее, это сбивает с толку мой прокси-сервер балансировки нагрузки Apache, а также сервер приложений в нашем демонстрационном окне (работает пассажир). Хотя досадно, но это прекрасно работает на локальных серверах разработки. URL-адреса, включая% 2F, по-видимому, вызывают 404 ошибки на сервере (не в приложении!).
Мне нужен общий подход к решению этой проблемы при сохранении аккуратного URL.
Стек, вызвавший эту проблему: Ruby 1.8.7, Merb 1.0.12, балансировка нагрузки Apache для тонкого кластера на производстве, Passenger на демо-сервере и работа с тонкими без прокси на разработке.