Ok, então eu descobri.
O Vhost deve ficar assim:
<VirtualHost *:80>
ServerName sf.local
ServerAlias www.sf.local
DocumentRoot /home/piotrek/Vhosts
ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9071/home/piotrek/Vhosts/$1
<Directory /home/piotrek/Vhosts>
AllowOverride None
Require all granted
<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
# rewrite if cookie is set to "new"
RewriteCond %{HTTP_COOKIE} THEME=new [NC]
RewriteRule ^(.*)$ sf2.local/web/$1 [QSA,L]
# rewrite to old version
RewriteRule ^(.*)$ sf.local/web/$1 [QSA,L]
</IfModule>
</Directory>
<Directory /home/piotrek/Vhosts/sf.local/web>
<IfModule mod_rewrite.c>
# local rewrite to app_dev.php if file does not exists
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app_dev.php [QSA,L]
</IfModule>
</Directory>
<Directory /home/piotrek/Vhosts/sf2.local/web>
<IfModule mod_rewrite.c>
# local rewrite to app_dev.php if file does not exists
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ app_dev.php [QSA,L]
</IfModule>
</Directory>
ErrorLog /home/piotrek/Vhosts/logs/sf.local-error.log
CustomLog /home/piotrek/Vhosts/logs/sf.local-access.log combined
</VirtualHost>
/home/piotrek/Vhosts/sf.local/web/app_dev.php
<?php
setcookie("THEME", "new", time() + 3600);
die('OLD THEME');
/home/piotrek/Vhosts/sf2.local/web/app_dev.php
<?php
die('NEW THEME');
Agora, quando eu inserir link pela primeira vez,
-
A solicitação
- é reescrita para
sf.local/web/app_dev.php
-
ProxyPassMatch
processa a solicitação para o diretório de temas antigofcgi://127.0.0.1:9071/home/piotrek/Vhosts/sf.local/web/app_dev.php
- o cookie está definido
-
OLD THEME
é exibido
Após a atualização
-
A solicitação
- é reescrita para
sf2.local/web/app_dev.php
-
ProxyPassMatch
trata da solicitação para o novo diretório de temafcgi://127.0.0.1:9071/home/piotrek/Vhosts/sf2.local/web/app_dev.php
-
NEW THEME
é exibido
As regravações também funcionam para outros arquivos, como o link . Sem cookie, ele é reescrito para /home/piotrek/Vhosts/sf.local/web/robots.txt
e com cookie para /home/piotrek/Vhosts/sf2.local/web/robots.txt