Migrez aplicația mea de la PHP 5.6 la php 8.0 având un controler frontal care redirecționează către aplicația mea moștenită sau noua mea aplicație, în funcție de uri.
Am încercat cu alias și funcționează, dar trebuie să păstrez exact aceeași gazdă pentru ambele și nici un alias.
De exemplu:
https://foo.bar.com/my_php80_routes
https://foo.bar.com/my_php56_routes
Iată încercarea mea nesatisfăcătoare cu alias
<VirtualHost *:80>
ServerName foo.bar.com
DocumentRoot /var/www/html/foobar/public
# Unwanted prefix
Alias /legacy /var/www/html/foobar/legacy/web
<Directory /var/www/html/foobar/public>
AllowOverride none
Require all granted
SetEnv APP_ENV "dev"
# Handled by php8.0 : ok
<FilesMatch \.php$>
SetHandler "proxy:unix:/var/run/php/php8.0-fpm.sock|fcgi://localhost/"
</FilesMatch>
FallbackResource /index.php
DirectoryIndex index.php
</Directory>
<Directory /var/www/html/foobar/legacy/web>
AllowOverride none
Require all granted
# Handled by libapache2-mod-php5.6 : ok
FallbackResource /app_dev.php
DirectoryIndex app_dev.php
</Directory>
ErrorLog /var/log/apache2/foobar.log
CustomLog /var/log/apache2/foobar.log combined
</VirtualHost>
Am căutat o altă metodă, poate bazată pe un antet HTTP personalizat precum „FOOBARAPP_LEGACY: 1”, dar nu am găsit o modalitate de a mapa HEADER HTTP la o locație a sistemului de fișiere cu Apache.
Există vreo altă soluție?
[Editați | ×]
O sa incerc sa ma explic mai bine.
Ceea ce încerc să obțin este să am 2 aplicații care rulează fiecare pe o versiune PHP diferită, una fiind „Main App” (noua aplicație pe PHP8.0) și redirecționarea către „A doua aplicație” dacă ruta nu este găsită de „Main”. Aplicație”.
Toate acestea fiind complet transparente pentru utilizatorul final. (același domeniu, fără prefix)
Dacă https://foo.bar.com/posts nu este încă migrat: Aplicația principală nu găsește ruta și redirecționează către a doua aplicație care va difuza conținutul.
Când acest punct final este migrat la „Aplicația principală”: Aplicația principală găsește ruta și difuzează conținutul.
Așa că cer o soluție care nu implică un /prefix sau un nou subdomeniu.