Странности mod_rewrite
Добрый день, товарищи.
Имеется django (mod_wsgi), апач и mod_rewrite. Для mod_rewrite в настройках вирутального хоста заданы, например, следующие правила:
LogLevel alert rewrite:trace3
RewriteEngine On
RewriteRule ^/dummy$ /de/testcity?cityname=berlin [PT,L]
RewriteRule ^/mnogomnogomnogobukov$ /de/testcity?cityname=berlin [PT,L]
Для первого правила все происходит нормально, http://host/dummy
преобразуется в http://host/de/testcity?cityname=berlin
Но с более длинными правилами (а также с правилами, извлекающими часть строки и подставляющими ее в результирующий урл) происходит что-то странное.
Для http://host/mnogomnogomnogobukov
урл, который доходит до django (context['request'].get_full_path()
) выглядит так: /mnogomno/de/testcity?cityname=berlin
Да, так происходит в случае, если target-url содержит знак вопроса (GET-параметры). Если знака вопроса нет, то все хорошо, мусора в начале строки нет.
Товарищи, куда копать? Просмотрел одним глазом багзиллу апача, вроде ничего похожего не увидел. На всякий случай обновил апач (бубунта 14.04) с 2.4.7 до 2.4.10 — ничего.
P.S. сразу уточню — без mod_rewrite в данной задаче не обойтись, все варианты решения с помощью самой django уже были тщательно изучены.
P.P.S. лезть в исходники апача не хочется, но вероятно придется :(