ฉันมีปัญหาในการพยายามหาวิธีกำหนดค่า Nginx โดยทั่วไปฉันมีชื่อเซิร์ฟเวอร์เดียวกัน แต่มีสองเว็บไซต์:
- เว็บไซต์ x
โฟลเดอร์รูท: /var/www/html/x/public
- เวิร์ดเพรส
โฟลเดอร์รูท: /var/www/html/wordpress
เมื่อฉันเข้าถึง localhost:8443 มันจะไปที่: /var/www/html/x/public
เมื่อฉันเข้าถึง localhost:8443/blog มันจะไปที่: /var/www/html/wordpress
ฉันทำให้มันทำงานจนถึงจุดที่ localhost:8443/blog ใช้งานได้ แต่ localhost:8443/blog/my-blog-post ไม่ทำงาน
เซิร์ฟเวอร์ {
ฟัง [::]:443 ssl http2 ipv6only=on;
ฟัง 443 ssl http2;
server_name localhost;
add_header X-Frame-ตัวเลือก "SAMEORIGIN";
add_header X-XSS-การป้องกัน "1; mode=block";
add_header X-Content-Type-Options "nosniff";
ชุดอักขระ utf-8;
ดัชนี index.php;
รูท /var/www/html/exploraai/public;
ที่ตั้ง ^~ /blog {
นามแฝง /var/www/html/blog;
ตำแหน่ง ~ \.php$ {
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
รวม fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
ที่ตั้ง / {
try_files $uri $uri/ /index.php?$query_string;
}
ตำแหน่ง ~ \.php$ {
try_files $uri = 404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
รวม fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
สถานที่ ~ /\.(?!เป็นที่รู้จัก).* {
ปฏิเสธทั้งหมด
}
สถานที่ = /favicon.ico {
access_log off; ปิด log_not_found;
}
ตำแหน่ง = /robots.txt {
access_log off; ปิด log_not_found;
}
}
ฉันลองทำสิ่งต่าง ๆ แต่จนถึงตอนนี้ยังไม่มีอะไรทำงาน
อัปเดต
สิ่งที่ได้ผลสำหรับฉันคือแทนที่บล็อกตำแหน่งสำหรับบล็อกตำแหน่งต่อไปนี้
สถานที่ / บล็อก {
นามแฝง /var/www/html/blog/;
try_files $uri /blog/index.php;
ตำแหน่ง ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php:9000;
fastcgi_index index.php;
รวม fastcgi_params;
fastcgi_param SCRIPT_FILENAME $request_filename;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}