เรามีแอปพลิเคชันไดรฟ์ไฟล์ที่ให้บริการโดย apache ที่ทำงานบนเส้นทางต่อไปนี้:
https://app.example.com/app
เราจำเป็นต้องอัปเดตแอปและเปลี่ยนไปใช้ Nginx เรายังได้รับมอบหมายให้ให้บริการแอปพลิเคชันเกี่ยวกับ:
https://app.example.com
อย่างไรก็ตาม เรายังมีไฟล์บางไฟล์ที่อ้างอิงถึงเส้นทางแรก และเราต้องการให้สามารถเข้าถึงเส้นทางเหล่านั้นได้สำหรับตอนนี้ เราสามารถให้บริการไฟล์โดยใช้เส้นทางที่สองเท่านั้น ไฟล์กำหนดค่า nginx ของฉันคือ:
เซิร์ฟเวอร์ {
ฟัง 80;
ฟัง [::]:80;
server_name app.example.com;
# บังคับให้เปลี่ยนเส้นทาง HTTPS
ส่งคืน 301 https://$http_host$request_uri;
}
เซิร์ฟเวอร์ {
ฟัง 443 ssl http2;
ฟัง [::]:443 ssl http2;
server_name app.example.com;
ssl_certificate /etc/letsencrypt/live/app.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/app.example.com/privkey.pem;
รวม /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
รูท /var/www/html;
ดัชนี index.php;
ตำแหน่ง ~ \.php(?:$|/) {
fastcgi_split_path_info ^(.+?\.php)(/.*)$;
ตั้ง $path_info $fastcgi_path_info;
fastcgi_pass 127.0.0.1:9000;
}
}
ด้วยการกำหนดค่า ฉันชอบที่จะให้บริการทั้งสองอย่าง app.example.com
และ app.example.com/app
ด้วยไฟล์แอปพลิเคชันเดียวกันบนเซิร์ฟเวอร์ ฉันลองใช้สิ่งนี้:
ตำแหน่ง / แอป {
เขียนใหม่ ^/app(.*) /$1 สุดท้าย;
}
แต่มันแค่เปลี่ยนเส้นทางคำขอทั้งหมด และฉันไม่สามารถโหลดไฟล์ได้อย่างถูกต้อง ตัวอย่างเช่น https://app.example.com/file?id=12345
. ฉันขอขอบคุณความช่วยเหลือใด ๆ ในการแก้ปัญหานี้ ขอบคุณ!