Для серверной части спецификации WSGI Python, а не части приложения, сервер не разрешает переписывать запросы? Я спрашиваю, потому что я не могу найти ничего подобного. Насколько я понимаю, Nginx и Apache являются универсальными, поэтому у них будет механизм правил перезаписи (и IIS). Почему сервер WSGI не должен иметь одинаковое значение, так что мне не нужно использовать регулярное выражение? Не позволяет ли PEP-333 перезаписывать? Не переписывает ли Python способ делать что-то?Не содержит ли спецификация PEP 3333 веб-серверов Python WSGI от правил перезаписи?
ответ
Как обрабатывать пути, не является частью ответственности сервера WSGI. Он прозрачно передает запрос приложениям и возвращает полученный ответ, в равной степени прозрачно. Это то, что описывает стандарт.
URL-адрес переписывания - это дополнительная услуга, которую сервер может использовать, но это не имеет никакого отношения к стандарту WSGI. Apache делает это с дополнительным модулем (mod_rewrite
). Это популярная функция, поэтому другие серверы тоже предложили ее. Но это не означает, что стандарт WSGI должен говорить об этом, точно так же, как стандарт HTTP не описывает переписывание URL.
Если вам нужны пути, переписанные, вы можете легко сделать это в своем приложении WSGI или написать связующее ПО WSGI для этого. Связующее ПО WSGI выглядит как приложение WSGI на сервере и подобно серверу для следующего приложения.
Кто-то уже написал такое промежуточное программное обеспечение для вас, см. WSGIRewrite project.
Ответ: это то, что обычно делается на уровне сервера, но приложение, отличное от мира, не использующего Python, который использует Apache, IIS или что-то еще? – johnny
Apache также является приложением. Это просто очень богатое и универсальное приложение с плагинами. 'mod_rewrite' - это плагин (промежуточное ПО?), который предлагает эту функциональность. Серверы WSGI также универсальны, поскольку это промежуточное ПО может решить эту же проблему. –
Что такое механизм правил перезаписи, связанный со стандартом веб-интерфейса? Механизм rewrite rule - это * приложение *. Создайте приложение WSGI, которое сделает это. –
@MartijnPieters Я знаю, что вы специалист по Python. Но это не имеет смысла для меня. Приложение отделено от сервера. На серверах Python, которые используют приложения WSGI, похоже, нет механизмов Rewrite. Я не хочу создавать в приложении механизм перезаписи. Я только хочу иметь дело с результатами, как с mod_rewrite. Я понятия не имею, имеет ли это к этому какое-либо отношение или нет. Вот почему я задал очень конкретный вопрос. – johnny
Но почему это должно быть частью спецификации? Переписывание URL-адресов ортогонально стандарту, который позволяет подключать код Python к веб-серверу. –