这是我的本地主机 Nginx 服务器配置。地址是/etc/nginx/sites-enabled/development/localhost
server {
listen 80 default_server;
server_name localhost;
root /var/www/html;
index index.nginx-debian.html;
location / {
internal;
}
error_page 404 /404.html;
location /404.html {
root /var/www/html/errors;
internal;
}
}
如果我http://locahost
在 URL 栏中调用,则会显示 404 页面错误。但应该显示index.nginx-debian.html
。但如果我http://localhost
使用有效的子域调用,它就可以正常工作。就像那样http://users.localhost
,在中定义/etc/nginx/sites-enabled/development/users
。
如果仅调用,则显示 Nginx 默认页面http://localhost
,404.html
如果子域不存在,如果我http://localhost
使用定义的子域正确调用,则显示另一个任意页面。
答案1
我按如下方式解决。
在/etc/nginx/sites-enabled/development/default
。
server {
listen 80 default_server;
server_name *.localhost *.<host-name>;
root /var/www/html/errors/404;
location / {
index subdomain.html;
}
}
在/etc/nginx/sites-enabled/development/localhost
。
server {
listen 80;
server_name = localhost;
root /var/www/html;
index index.nginx-debian.html;
# to URI errors caused by paths after domain
error_page 404 /domain.html;
location = /domain.html {
root /var/www/html/errors/404;
internal;
}
}
我不知道这个解决方案是否最好,所以如果有人有更好的解决方案,请在此处发布。谢谢。