• baidu.com直接访问网站,不跳转www.baidu.com


           平常最多的需求是将baidu.com指向全域名www.badu.com,但是往往需求是各种各样,这两天就遇到一个反向需求。将baidu.com直接访问网站,而不做跳转。

           最近两天在给域名证书续费,但是需要外国证书认证机构给域名注册时留的邮箱发邮件确认,发了几次邮件,仍然没有收到邮件。于是,协商决定在网站下面放一个认证码,让国外访问来确定域名归属。

    以下把我在配置过程中遇到的问题总结如下:

    1、tomcat下新建目录下文件访问404

            接到这个问题,想着很简单,在站点目录下面创建一个文件,然后全路径访问就好了,但是当真的这么做了以后,才发现事情并没有那么简单,检查过权限啊,重启啊,总是404.然后网上查资料,各种回答都有,有的说把web.xml放到新建目录下,照做后,问题

    仍然没有解决。咨询了开发后,才知道开发在springMVC.xml下配置了启动tomcat后加载的资源和要拦截的地址(目录地址)。比如我要访问www.baidu.com/.well-known/1.txt,那么我就要在springMVC.xml下添加下面两行内容:

        <!-- 自动扫描controller包下的所有类,使其认为spring mvc的控制器 -->
        <context:component-scan base-package="com.hengxin.qianee.controller" />
        
        <mvc:annotation-driven />
        
        <mvc:resources mapping="/css/**" location="/css/" />
        <mvc:resources mapping="/images/**" location="/images/" />
        <mvc:resources mapping="/js/**" location="/js/" />
        <mvc:resources mapping="/skippr/**" location="/skippr/" />
     .......
        <mvc:resources mapping="/sitemap.txt" location="/" />
        <mvc:resources mapping="/sitemap.xsl" location="/" />
        <mvc:resources mapping="/silian.txt" location="/" />
        <mvc:resources mapping="/.well-known/**" location="/.well-known/" />  
        <mvc:interceptors>
              <!-- 使用bean定义一个Interceptor,直接定义在mvc:interceptors根下面的Interceptor将拦截所有的请求 -->  
              <mvc:interceptor>
                  <mvc:mapping path="/**"/>
                  
                  <!-- 需排除拦截的地址 -->
                <mvc:exclude-mapping path="/.well-known/**"/>
                <mvc:exclude-mapping path="/css/**"/>
                <mvc:exclude-mapping path="/images/**"/>
                <mvc:exclude-mapping path="/js/**"/>
                <mvc:exclude-mapping path="/skippr/**"/>
                <mvc:exclude-mapping path="/account/getCity"/>
                <mvc:exclude-mapping path="/account/getAreas"/>

    2、使用baidu.com直接访问网站。

            原本网站做的跳转,如果输入baidu.com的时候自动跳转到www.baidu.com,但是现在认证方需要实现不要直接跳转,而是直接访问baidu.com/.well-known/1.txt,获取到认证方发来的认证码(这个认证码是事先发过来的,只要放到这个1.txt中即可),而我们网站做的多层跳转,如下图:

    配置文件如下:

     1     server
     2     {
     3     listen  80;
     4     proxy_set_header Host $http_host;
     5     proxy_set_header  X-Real-IP  $remote_addr;
     6     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
     7     server_name  www.baidu.com;
     8 
     9     location ^~/front/aboutUs/aboutUs/9
    10     {
    11     proxy_pass http://baidu;
    12     }
    13 
    14     location /
    15     {
    16     rewrite ^(.*) https://www.baidu.com$1 permanent;
    17     }
    18     }
    19 
    20 
    21     server
    22     {
    23     listen  80;
    24     proxy_set_header Host $http_host;
    25     proxy_set_header  X-Real-IP  $remote_addr;
    26     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    27     server_name  baidu.com;
    28 
    29     location ^~/front/aboutUs/aboutUs/9
    30     {
    31     proxy_pass http://baidu;
    32     }
    33     rewrite ^(.*) http://baidu.com$1 permanent;
    34 
    35     }
    36 
    37 
    38 
    39     server
    40     {
    41     listen  443;
    42     proxy_set_header Host $http_host;
    43     proxy_set_header  X-Real-IP  $remote_addr;
    44     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    45     server_name www.baidu.com;
    46     ssl on;
    47     ssl_certificate    /data/src/baidu.crt;
    48     ssl_certificate_key    /data/src/baidu.key;
    49     ssl_session_timeout  5m;
    50     ssl_protocols    TLSv1 TLSv1.1 TLSv1.2;
    51 
    52     location ^~/front/aboutUs/aboutUs/9
    53     {
    54     rewrite ^(.*) http://www.baidu.com$1 permanent;
    55     }
    56 
    57     location /
    58     {
    59     proxy_pass http://baidu;
    60     }
    61     }
    62 
    63     server
    64     {
    65     listen  443;
    66     ssl  on;
    67     proxy_set_header Host $http_host;
    68     proxy_set_header  X-Real-IP  $remote_addr;
    69     proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
    70     server_name baidu.com;
    71     ssl_certificate    /data/src/baidu.crt;
    72     ssl_certificate_key    /data/src/baidu.key;
    73     ssl_session_timeout  5m;
    74     ssl_protocols    TLSv1 TLSv1.1 TLSv1.2;
    75     rewrite ^(.*) https://www.baidu.com$1 permanent;
    76 
    77     location /
    78     {
    79     proxy_pass https://baidu;
    80     }
    81     }
    nginx.conf

           本来想把其中的baidu.com的跳转给取消掉,结果,测试结果显示跳转太多,无法显示;然后又想把443的跳转和其他的多余的跳转都注销掉,测试结果显示了404,上述两种方法都否决了。

    查阅了一番资料,仍然未果。

    于是咨询了朋友,他们建议把80和443的虚拟主机配置上别名。但是仔细检查了下配置文件,心想即使配置上别名,仍然会将baidu.com跳转到www.baidu.com;但是仍然抱着破罐破摔的心态,决定尝试下,结果配置完后,居然成功了。

    下面是配置过后的配置文件:

     server
        {
        listen  80;
        proxy_set_header Host $http_host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        server_name  www.baidu.com baidu.com;
    
        location ^~/front/aboutUs/aboutUs/9
        {
        proxy_pass http://baidu;
        }
    
        location /
        {
        rewrite ^(.*) https://www.baidu.com$1 permanent;
        }
        }
    
        server
        {
        listen  443;
        proxy_set_header Host $http_host;
        proxy_set_header  X-Real-IP  $remote_addr;
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        server_name www.baidu.com baidu.com;
        ssl on;
        ssl_certificate    /data/src/baidu.crt;
        ssl_certificate_key    /data/src/baidu.key;
        ssl_session_timeout  5m;
        ssl_protocols    TLSv1 TLSv1.1 TLSv1.2;
    
        location ^~/front/aboutUs/aboutUs/9
        {
        rewrite ^(.*) http://www.baidu.com$1 permanent;
        }
    
        location /
        {
        proxy_pass http://baidu;
        }
        }

    注:以上网站网址baidu.com是化名,并非真正网站网址。为保护网站信息,借用而已。

  • 相关阅读:
    IndexOf、IndexOfAny 、Remove
    静态类、静态方法的使用
    面向对象 字段、方法、属性
    break、continue、return
    冒泡排序
    方法练习
    Oracle-查看oracle是否有表被锁
    教程-键盘扫描码
    网卡远程唤醒-远程开机再配合远程控制
    远程控制篇:在DELPHI程序中拨号上网
  • 原文地址:https://www.cnblogs.com/dadonggg/p/8932253.html
Copyright © 2020-2023  润新知