我从Apache 2迁移到nginx,我遇到了问题,以便我的子域控制.我想要的:当请求x.domain.tld时,在内部重写到domain.tld/x
我遇到的问题是nginx总是通过告诉浏览器重定向来重定向页面.但我真正想要的是在内部执行此操作,就像Apache 2那样.此外,如果我只请求x.domain.tld,则nginx返回404.它仅在我执行x.domain.tld/index.php时有效
这是我的配置:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
谢谢!