我在 Ubuntu 14.04 上使用 nginx (1.4.6-1ubuntu3.4)。当有人访问某个页面时,例如http://mymaindomain.com/page1
,我想重写它以包含www
子域。因此,如果有人访问了之前的 URL,则重写的 URL 将是http://www.mymaindomain.com/page1
。因此,我添加了一个“服务器”指令:
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
…
}
server {
server_name mymaindomain.com;
rewrite ^ http://www.mymaindomain.com$request_uri permanent;
}
到文件末尾/etc/nginx/nginx.conf
。但重启服务器后,我收到错误:
2016/11/04 22:12:33 [emerg] 1063#0: "server" directive is not allowed here in /etc/nginx/nginx.conf:75
如何正确设置我的 nginx 服务器以正确重写我的 URL?
答案1
服务器块应该位于 http 块内。
以下链接中的 NGINX 文档中提到了这一点(请参阅其中提到的“上下文”): http://nginx.org/en/docs/http/ngx_http_core_module.html#server