美文网首页
Nginx区分PC或手机访问不同域名

Nginx区分PC或手机访问不同域名

作者: 张奇_ | 来源:发表于2018-10-11 20:53 被阅读0次

    经过一系列的审核,耗时近一个月的网站备案终于通过,便迫不及待地进行了域名解析。需要分别对PC和手机进行配置,具体如下。

    一、需求

    客户端 域名 描述 访问目录
    PC端 www.harriszhang.cn 用于PC端访问 /var/www/space/space/index.html
    手机端 m.harriszhang.cn 用于移动端访问 /var/www/space/spaceMobile/index.html

    当在PC端访问www.harriszhang.cnm.harriszhang.cn时,跳转到www.harriszhang.cn

    当在移动端访问www.harriszhang.cnm.harriszhang.cn时,跳转到m.harriszhang.cn

    二、Nginx配置

    2.1 PC访问配置

    修改前:

    server {
        listen       80;
        server_name  localhost;
    
        location / {
            root /var/www/space/space;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
        ...
    }
    

    修改后:

    server {
        listen       80;
        server_name  www.harriszhang.cn;
    
        if ($http_host !~ "www.harriszhang.cn$") {
            rewrite ^(.*) http://www.harriszhang.cn$1 permanent;
        }
        if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)') {
            rewrite ^(.*) http://m.harriszhang.cn$1 permanent;
        }
    
        location / {
            root /var/www/space/space;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
        ...
    }
    

    2.2 移动端访问配置

    修改前:

    server {
        listen       80;
        server_name  localhost;
    
        location / {
            root /var/www/space/spaceMobile;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
        ...
    }
    

    修改后:

    server {
        listen       80;
        server_name  m.harriszhang.cn;
    
        if ($http_user_agent !~* '(Android|webOS|iPhone|iPod|BlackBerry)') {
            rewrite ^(.*) http://www.harriszhang.cn$1 permanent;
        }
    
        location / {
            root /var/www/space/spaceMobile;
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
        ...
    }
    

    三、重启Nginx

    通过nginx -s reload命令重新启动 Nginx,即可看到设置已经生效。

    相关文章

      网友评论

          本文标题:Nginx区分PC或手机访问不同域名

          本文链接:https://www.haomeiwen.com/subject/pnsiaftx.html