Tôi đã di chuyển từ Apache 2 sang nginx và tôi gặp sự cố khi kiểm soát miền phụ của mình. Những gì tôi muốn: Khi x.domain.tld được yêu cầu, nội viết lại để domain.tld/xcấu hình máy chủ nginx: tên miền phụ vào thư mục
Vấn đề tôi nhận được là nginx luôn chuyển hướng trang bằng cách nói với các trình duyệt để chuyển hướng đến. Nhưng những gì tôi thực sự muốn là làm điều này trong nội bộ, như Apache 2 đã làm. Ngoài ra, nếu tôi chỉ yêu cầu x.domain.tld, nginx trả về một 404. Nó chỉ hoạt động khi tôi làm x.domain.tld/index.php
Dưới đây là cấu hình của tôi:
server {
listen 80 default;
server_name _ domain.tld www.domain.tld ~^(?<sub>.+)\.domain\.tld$;
root /home/domain/docs/;
if ($sub) {
rewrite (.*) /$sub;
}
# HIDDEN FILES AND FOLDERS
rewrite ^(.*)\/\.(.*)$ @404 break;
location = @404 {
return 404;
}
# PHP
location ~ ^(.*)\.php$ {
if (!-f $request_filename) {
return 404;
}
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/etc/nginx/sockets/domain.socket;
}
}
Cảm ơn!
cố gắng để khởi động lại nginx với ví dụ của bạn gây ra lỗi 'thất bại: nhân vật không được công nhận sau (< ' – vladkras
tôi phải đề cập đến nó là nginx 1.10.1 – vladkras