В принципе, для этого примера у меня есть 2 отдельные базы кода, v1 и v2. Я хочу перенаправить определенную область сайта v1 на v2, чтобы мы могли периодически переносить старый код на новый код.Apache переписывает определенные URL-адреса для разделения части кода
Теперь, я сделал этот точный вид переноса кода раньше, я просто не могу вспомнить точную спецификацию и не сделали ли мы какое-то apache voodoo, чтобы заставить его работать. На этот раз я могу заставить его попасть в код v2, но затем последующие запросы используют v1 vhost, и поэтому образы v2 обращаются к пути v1 и не существуют.
Так что я хочу, чтобы domain1.com/foo/bar перенаправлены на v2 кодовую в v1 виртуальный хост (в/дом/domain1) У меня есть:
RewriteRule ^/foo/?([0-9a-zA-Z]*)/?(([0-9a-zA-Z/]*))$ /home/domain2/index.php?controller=foo&action=$1¶ms=$2 [NC,L]
Это успешно догоняет запрос и передает это к кодовой базе v2, но тогда кодовая база v2 продолжает использовать v1 vhost. Очевидно, что я хотел бы, чтобы ударить v2 кодовые и начать использовать этот виртуальный хост, но без использования внешнего редиректа [R]
Выхода из журнала переписывания выглядит следующим образом:
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (2) init rewrite engine with requested uri /foo
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (3) applying pattern '^/foo/?([0-9a-zA-Z]*)/?(([0-9a-zA-Z/]*))$' to uri '/foo'
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (2) rewrite '/foo' -> '/home/domain2/index.php?controller=foo&action=¶ms='
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (3) split uri=/home/domain2/index.php?controller=foo&action=¶ms= -> uri=/home/domain2/index.php, args=controller=foo&action=¶ms=
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (2) local path result: /home/domain2/index.php
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#81783540/initial] (1) go-ahead with /home/domain2/index.php [OK]
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#8175e4b0/initial] (2) init rewrite engine with requested uri /images/layouts/standard/header/header_logo.gif
192.168.1.64 - - [23/Apr/2009:17:04:11 +0100] [domain1.com/sid#813071d0][rid#8175e4b0/initial] (3) applying pattern '^/foo/?([0-9a-zA-Z]*)/?(([0-9a-zA-Z/]*))$' to uri '/images/layouts/standard/header/header_logo.gif'
...
...
кто может помочь с последним шагом !?
Спасибо, но это не работает правильно, и я не помню, чтобы использовать флаг P в последний раз, когда я это делал. – jmoz
У вас должен быть полный URL-адрес (включая протокол) для нового источника, как и у вас с перенаправлением. Однако веб-сервер не отправляет перенаправление, а сам выполняет запрос, что делает его обратным прокси. – Lucero