使用 Meteor 和 Meteor UP 将 www 重定向到非 www

Redirect www to non-www with Meteor and Meteor UP

如何将 www.site.com 上的所有内容重定向到 site.com

我使用 MUP 将我的应用程序部署到 Digital Ocean。到目前为止,我正在考虑为 www 添加一个 CNAME(无法让它工作),或者添加一个重定向服务器端的流星包(比如手动 wizonesolutions:canonical), or SSH into the server and change NGINX。

执行此操作的推荐方法是什么?

我忘了说我用的是 SSL (HTTPS)。因此,无法在域设置中使用 CNAME 进行重定向。

我无法更改 NGINX 设置,因为每次部署时,容器都会被新容器替换,而 MUP 本身对此没有任何设置。

推荐的非常好的解决方案是使用 wizonesolutions:canonical. Just remember to set ROOT_URL variable in the mup.js setup file to the desired URL (https://www.yourdomain.com or https://yourdomain.com)

自 2022 年起,(mup v1.5.7),您可以按照以下方式进行操作:

mup.js

  proxy: {
    domains: 'example.org,www.example.org',

    ssl: {
      letsEncryptEmail: 'hello@example.org',
      forceSSL: true,
    },

    nginxServerConfig: './nginx.conf',
  },

nginx.conf

# Start custom configuration: redirect www to non www
server_name example.org www.example.org;
if ($host = www.example.org) {
    return 301 https://example.org$request_uri;
}
# End of custom configuration

Nginx 说“if is evil”,但这是我发现的唯一可以与自动生成的 nginx 配置互操作的解决方案。

您甚至可以尝试使用更通用的方法:

server_name ~^.*$;
if ($host ~ ^www\.(?<domain>.+)$) {
  return  301 $scheme://$domain$request_uri;
}

在这里,您不必维护任何网站url。