nginx下的一级域名跳转到二级域名的配置

nginx下的一级域名跳转到二级域名的配置

今天同事反馈,阿里打电话说“网站要变更不然今天就关停。”

这个事情去年年底就说了。不知道是什么原因。我们来解决这个问题。下面以testweb.com域名为例来讲讲。

阿里短信内容如下:

testweb.com域名网站内容与备案信息不符,请修改网站内容,保持与备案主体一致,符合最新备案规则。testweb.com网站下方未显示正确备案编号或者编号未指向工信部,请尽快添加,可参考操作指南。https://help.aliyun.com/knowledge_detail/137270.html

也是巧了,同事把这个短信发到我的微信,我就点开那个域名,确实是跳转到了我们公司的另外一个网站去了。这就很明显了,我跟同事说不要着急,这个问题简单,它不是备案问题,技术上可以轻松处理。做个域名跳转就OK,就是网上说的服务器做301跳转,301重定向,域名重定向。

那么nginx下的一级域名跳转到二级域名的配置,要怎么操作呢?我们分两步搞定。

第一步进入nginx虚拟主机配置目录,编辑相应站点的配置文件
[root@xxxxxxxxxxxxxxxxxxxxxxx sbin]# cd /usr/local/nginx/conf/vhost/
[root@xxxxxxxxxxxxxxxxxxxxxxx vhost]# vi testweb.conf

在server里面添加如下代码即可:

if ($host = 'testweb.com' ) {
                rewrite ^/(.*)$ http://www.testweb.com/$1 permanent;
}

完整的如下

server
    {
        listen 80;
        server_name  www.testweb.com testweb.com;
        index index.html index.htm index.php;
        root /data/www/testweb/public;
        location / {
          index  index.php index.html index.htm;
          #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
          if (!-e $request_filename)
          {
             #地址作为将参数rewrite到index.php上。
             rewrite ^/(.*)$ /index.php?s=$1;
             #若是子目录则使用下面这句,将subdir改成目录名称即可。
             #rewrite ^/subdir/(.*)$ /subdir/index.php?s=$1;
          }
        }
        #这里就是nginx下的一级域名跳转到二级域名的配置,效果是访问testweb.com跳转到www.testweb.com
        if ($host = 'testweb.com' ) {
                rewrite ^/(.*)$ http://www.testweb.com/$1 permanent;
        }
        location /api/ {
                index  index.php index.html index.htm;
                #如果请求既不是一个文件,也不是一个目录,则执行一下重写规则
                if (!-e $request_filename)
                {
                #若是子目录则使用下面这句,将subdir改成目录名称即可。
                rewrite ^/api/(.*)$ /api.php?s=$1;
                 }
        }
        location ~ \.php(.*)$ {
            fastcgi_pass   unix:/usr/local/php/var/run/php-cgi.sock;
            fastcgi_index  index.php;
            #fastcgi_split_path_info ^(.+\.php)(.*)$;
            #fastcgi_param   PATH_INFO $fastcgi_path_info;
            fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf|json|swg)$
        {
            expires      30d;
        }
        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }
        location ~ /.well-known {
            allow all;
        }
        location ~ /\.
        {
            #deny all;
        }
        access_log  /data/www/nginx_log/testweb.log access;
}

编辑完按esc,再按shift+:号,输入wq保存退出。

第二步重启nginx
[root@xxx vhost]# cd /usr/local/nginx/sbin/
[root@xxxxxxxxxxxxxxxxxxxxxxx sbin]# ./nginx -s reload

到此nginx下的一级域名跳转到二级域名的配置就搞定了。

刷新testweb.com看效果,可以看到已经跳转到了www.testweb.com。

完工。

                       

点击阅读全文

上一篇 2023年 6月 12日 am10:51
下一篇 2023年 6月 12日 am10:53