我试图获得它,以便我的Nginx中的任何非子域名顶级URL都被重写为www的子域名。使用Nginx将动态顶级域名重定向到www子域
因为我有大约20个指向这个服务器的顶级域名,所以我不能使用正常的服务器名称。是的,我可以为每个人写一个功能,但我可以感觉到我的灵魂开始褪色,只是说出来。
因为我在Nginx服务器的其他配置中使用这些顶级域的子域,所以我无法创建一揽子规则。
所以基本上我需要pickout example.com
/example.co.uk
/example.eu
/example.ly
都是相同的,他们重定向到WWW子域名,同时确保我只能挑他们,如果他们不是子域。
我去迄今:
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name ~^([^\.].*)\.(com|co.uk|eu|ly)$;
rewrite ^/(.*)$ $scheme://www.$host$request_uri permanent;
}
但是,不断增加的www
两次,使URL www.www.example.com
,我不知道为什么。
有人能告诉我发生了什么事吗?
你在你的配置中如何处理子域名?你也使用一个正则表达式吗? – 2014-11-23 23:25:14
@XavierLucas我已将所有其他服务器从我的配置中取出来自行测试 – Sammaye 2014-11-23 23:30:40
所以这就是问题所在,因为您的正则表达式也与www.example.com相匹配。您需要将子域服务器块放入您的配置中,并确保(如果使用正则表达式)在发布之前声明了它(顺序测试正则表达式)。 – 2014-11-23 23:32:35