nginx 的 301 重定向从非 www 到 www

nginx 的 301 重定向从非 www 到 www

我在我的网站中使用以下代码执行从非 www 域到 www 域的永久 301 重定向。我的 Web 服务器是 nginx。

rewrite ^/([^&]*)&(.*)$ http://www.example.com/$1?$2 permanent;

这只适用于用户输入http://example.com被重定向到的情况http://www.example.com

但是当用户输入例如http://example.com/portal.php时它不会重定向到http://www.example.com/portal.php

我如何确保我的所有页面都重定向到 www 域?

答案1

这通常通过不同的服务器块完成,不需要正则表达式。

server {
  listen 80;
  server_name example.com;

  return 301 http://www.example.com$request_uri;
}

server {
  listen 80;
  server_name www.example.com;

  # Location blocks etc
}

如果您想重定向 https,可以添加额外的服务器块。

相关内容