ฉันกำลังย้ายแอปจาก PHP 5.6 เป็น php 8.0 โดยให้ตัวควบคุมด้านหน้าเปลี่ยนเส้นทางไปยังแอปเดิมหรือแอปใหม่ขึ้นอยู่กับ uri
ฉันลองใช้นามแฝงและใช้งานได้ แต่ฉันต้องเก็บโฮสต์เดียวกันไว้สำหรับทั้งคู่และไม่มีนามแฝง
เช่น:
https://foo.bar.com/my_php80_routes
https://foo.bar.com/my_php56_routes
นี่คือการลองใช้นามแฝงที่ไม่น่าพอใจของฉัน
<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>
ฉันค้นหาวิธีอื่น อาจใช้ HTTP Header ที่กำหนดเอง เช่น "FOOBARAPP_LEGACY: 1" แต่ฉันไม่พบวิธีแมป HTTP HEADER กับตำแหน่งระบบไฟล์ด้วย Apache
มีวิธีอื่นอีกไหม ?
[แก้ไข]
ฉันจะพยายามอธิบายตัวเองให้ดีขึ้น
สิ่งที่ฉันพยายามบรรลุคือการมี 2 แอปพลิเคชันที่ทำงานบนเวอร์ชัน PHP ที่แตกต่างกัน แอปหนึ่งคือ "แอปหลัก" (แอปใหม่บน PHP8.0) และเปลี่ยนเส้นทางไปยัง "แอปที่สอง" หากไม่พบเส้นทางโดย "หลัก แอป".
ทั้งหมดนี้โปร่งใสอย่างสมบูรณ์สำหรับผู้ใช้ปลายทาง (โดเมนเดียวกัน ไม่มีคำนำหน้า)
ถ้า https://foo.bar.com/posts ยังไม่ได้ย้าย : แอพหลักไม่พบเส้นทางและเปลี่ยนเส้นทางไปยังแอพที่สองที่จะให้บริการเนื้อหา
เมื่อปลายทางนี้ถูกย้ายไปยัง "แอปหลัก" : แอปหลักจะค้นหาเส้นทางและให้บริการเนื้อหา
ดังนั้นฉันจึงขอวิธีแก้ปัญหาที่ไม่เกี่ยวข้องกับ /prefix หรือโดเมนย่อยใหม่