nginx server_name通配符或全部收集

我有一个nginx运行的服务几个网站的实例。 第一个是服务器IP地址上的状态消息。 第二个是admin.domain.com上的pipe理控制台。 这些工作很好。 现在我想所有其他的域请求去一个单一的index.php – 我有大量的域名和子域名,这是不切实际的全部列在一个nginxconfiguration。

到目前为止,我已经尝试将server_name设置为*但作为无效的通配符失败。 *.*工作,直到我添加其他服务器块,那么我猜它与他们冲突。

有没有办法在其他网站已经定义之后,在nginx中运行一个全面的服务器模块?

NB我不是一个垃圾邮件发送者,这些是有用内容的真正的网站,他们只是从一个数据库相同的CMS提供动力!

在您的全部服务器块中更改监听选项。 (添加default_server )这将采取所有你的未定义的连接(在指定的端口)。

 listen 80 default_server; 

如果你想推动一切index.php文件或文件夹不存在;

 try_files $uri /$uri /index.php; 

一个简单的下划线也适用:

 server_name _; 

资料来源: http : //nginx.org/en/docs/http/server_names.html

这将工作:

 server_name ~^(.+)$ 

对于我以某种方式定义default_server无法正常工作。 我解决了它

 server_name ~^.*$ 

使用所有的正则表达式。