我inheritance了一个Web服务器,我试图build立一个子域名。 我们在同一台服务器上有其他子域名,他们工作正常,但是当我把完全相同的信息放到configuration文件中时,它不起作用。 它所做的就是将我redirect到www。
我抄袭的configuration看起来像这样:
server { server_name sub1.example.com; root /mnt/webfiles/Web/sub1; index index.html index.htm index.php; access_log /var/log/nginx/sub1.access.log; error_log /var/log/nginx/sub1.error.log; include /etc/nginx/custom/common.conf; include /etc/nginx/custom/vhost-php.conf; }
很好用。 用户访问http://sub1.example.com并查看/ mnt / webfiles / Web / sub1中的所有文件。
我build立了一个新的子域名,用户立即被反弹到www.example.com
server { server_name sub2.example.com; root /mnt/webfiles/Web/sub2; index index.html index.htm index.php; access_log /var/log/nginx/sub2.access.log; error_log /var/log/nginx/sub2.error.log; include /etc/nginx/custom/common.conf; include /etc/nginx/custom/vhost-php.conf; }
我真的不在乎用户是否被redirect到www.example.com/sub2,或者如果他们的浏览器仍然显示sub2.domain.com。 无论什么作品。
我在其他地方发现了这个,但没有成功(仍然让我反感到www):
server { server_name sub2.example.com; return 301 "http://example.com/sub2${uri}"; }
/ sub2文件夹存在,并在其中有一个index.php页面。 我错过了什么?
谢谢,
杰夫
您很可能在/etc/sites-available
目录中创build了新的configuration文件,并且未/etc/sites-enabled
目录的符号链接。 因此configuration文件不会被nginx加载,而是使用默认的虚拟主机进行redirect。