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