У меня есть Apache, работающий в домене, например http://example.com
. У меня также есть Tomcat, работающий на моем сервере, и я передал все запросы, выполненные к http://example.com/t/
к Tomcat и всем другим URL подаются Apache непосредственно.
Моя проблема, у меня есть URL как http://example.com/bar
, но это должно на самом деле указать на http://example.com/t/bar
.
Другими словами, URL должен быть обработан Tomcat, который получает контекст приложения "панель".
Проблема, я не совсем уверен, как заставить надлежащее переписать правило для этого. Я пытался добавить это к sites-available/default
RewriteEngine on RewriteRule ^/bar(.*) /t/bar$1 [R]
Но это не сохраняет URL и вместо этого просто перенаправляет к URL Tomcat с /t/
префикс. Если я удаляю [R]
, затем я просто получаю 404.
Каково надлежащее RewriteRule
решить мою проблему?
Необходимо использовать 'P' (прокси) опция на правиле mod_rewrite, которое будет сделано внутренне к серверу. Необходимо будет также включить mod_proxy.
'proxy|P' (вызывают прокси),
Этот флаг вынуждает часть замены быть внутренне отправленной как запрос прокси, и сразу (перепишите остановки обработки здесь), проведенный через модуль прокси. Необходимо удостовериться, что строкой замены является допустимый URI (обычно стартовый с http://hostname), который может быть обработан модулем прокси Apache. В противном случае Вы получите ошибку от модуля прокси. Используйте этот флаг, чтобы достигнуть более мощной реализации директивы ProxyPass, отобразить удаленное содержание в пространство имен локального сервера.
Примечание: mod_proxy должен быть включен для использования этого флага.