У меня, похоже, проблема в том, что mod_rewrite отправляет несколько запросов обратно на мой сервер Lucee.Иногда 2 запроса, иногда 4 запроса.У меня есть специальная прикладная среда в Lucee для обработки и управления всеми запросами.Требуется, чтобы запрос был переписан и передан обратно Lucee как «/» (root) с параметром запроса, установленным для запрашиваемого пользователем URI.Кажется, что вся перезапись работает должным образом, но более одного запроса запускается внутренним сервером.Ниже приведена моя настройка правила перезаписи:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ "/" [E=vPath:$1,PT,NE,NS,L]
<If "-T reqenv('vPath')">
RequestHeader add "vPath" "%{vPath}e"
</If>
RewriteRule просто захватывает URI и устанавливает переменную среды «vPath», а затем перезаписывает URI в «/» с параметрами:
PT (pass through to next handler)
NE (no URI escaping of output)
NS (not for internal sub-requests)
L (last rule)
Кажется, все это работает так, как нужно, однако в ходе тестирования я убедился, что запрос, попавший в код Lucee, фактически вызывается несколько раз.Если я включу RewriteEngine off
, то только один запрос будет отправлен на сервер.Включите RewriteEngine on
и снова отправьте несколько запросов (от 2 до 6).
Также обратите внимание, что не имеет значения, использую ли я "P" (принудительный прокси) или "PT" (проход)до следующего обработчика), я получаю те же результаты нескольких запросов.
Любая помощь будет принята с благодарностью.Я отчасти NUBE для mod_rewrite.
Система:
OS: Linux 4.18.0-11-generic
Java: 1.8.0_181
Lucee: 5.2.9.31
Apache Tomcat: 8.5.33