nginx 301跳转怎么做

一台服务器上有多个域名,想通过nginx 配置把不带www 跳转到www上,

if ($host = 'XXXX'){
    return 301 https://$host$request_uri;
    

域名有多个,每个都这样写死的话,有些麻烦,询问下有何简单的办法能搞定的,比如寻找主机文本'www.'==-1然后跳转?不知有没这样的语法

阅读 4.3k
6 个回答

并没有,用模板引擎生成你的配置文件吧,比如用ansible或saltstack管理你的nginx配置

server {
    listen         80;
    server_name    example1.com example2.com example3.com;
    return         301 http://www.$host$request_uri;
}

也可以这样写:

server {
    listen         80 default_server;
    server_name    _;
    return         301 http://www.$host$request_uri;
}

介意使用openresty 或者在你现在的nginx上编译进去 lua_module 吗?这样的化,可以使用lua来完成你想的这种逻辑,再多都不怕。

301跳转

server {

listen 80;
server_name www.xxx.xx xxx.xx;
return 301 https://www.xxx.xx$request_uri;

}

用saltstack或者lua都感觉有点大材小用~~
在程序里中间件解决方案最佳,搞定~

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题