首页>建站相关>nginx网站301跳转与强制通过https访问

nginx网站301跳转与强制通过https访问

关于301重定向

301跳转是一种永久性重定向,向搜索引擎和用户说明原URL地址已经永久性更改为新的URL地址,使得搜索引擎在收录网站时可以将原URL地址的权重转移到新的URL地址上,同时也能方便用户访问到正确的内容。

小鸟数据沉浮史

小鸟数据这个站点,最早是用的lpisme主题,使用下来体验非常丝滑,百度没有被收录多少,必应倒是对它照单全收。用熟悉了typecho之后,也尝试着自己捣鼓了一个主题,也就是目前站点使用的,几次被推倒重来,至今尚未完工的“August”主题。切换主题的同时重新格式化了一下服务器系统,把apache换成了nginx,又把之前的文章也重新整理了一遍,中间可能出现了一些设置上的错误,导致了在原本收录很友好的必应上,一个小鸟数据的相关链接都没有剩下。

因为大部分时间在学习如何写一个typecho主题,所以也没有特别放在心上,这几天尝试必应api推送的时候,忽然发现必应平台对站点robots.txt的访问会报一串错误,本来应该是指向文本文件的内容,结果被导向到了主页。于是打开服务器检查了一下nginx的设置。

301跳转与强制https

server {
    listen 80;
    server_name abddb.com www.abddb.com ;
    rewrite ^(.*)$ https://${server_name}$1 permanent;
}

server {
    listen 443 ssl;
    server_name abddb.com www.abddb.com;
    root /usr/share/nginx/html/abddb;
    if ($host != 'www.abddb.com'){
        rewrite ^(.*)$ https://www.abddb.com$1 permanent;
    }
    include /etc/nginx/default.d/*.conf;
    gzip on;
    gzip_min_length 16k;
    gzip_comp_level 1;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/png image/svg+xml;
    gzip_vary on;
    gzip_disable "msie6";
    gzip_buffers 32 4k;
    gzip_http_version 1.0;

    ssl_certificate /etc/pki/nginx/www.abddb.com.pem;
    ssl_certificate_key /etc/pki/nginx/www.abddb.com.key;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location / {
        index index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

对nginx的使用完全是门外汉,相关配置文件也是东抄一段西抄一段拼凑而来,现在回头看看,建站的时候为了实现强制https访问,将泛解析的任意地址都跳转到主页是个明显的败笔,它直接导致了必应对robots.txt文件的读取错误,而这个错误已经被沿用了一年多了。

server {
    listen 80;
    server_name abddb.com , www.abddb.com;
    return 301 https://abddb.com$request_uri;
}

server {
    listen 443;
    server_name abddb.com;
    return 301 https://www.abddb.com$request_uri;
}

server {
    listen 443 default_server ssl;
    server_name www.abddb.com;
    root /usr/share/nginx/html/abddb;
    include /etc/nginx/default.d/*.conf;
    gzip on;
    gzip_min_length 16k;
    gzip_comp_level 1;
    gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/png image/svg+xml;
    gzip_vary on;
    gzip_disable "msie6";
    gzip_buffers 32 4k;
    gzip_http_version 1.0;

    ssl_certificate /etc/pki/nginx/www.abddb.com.pem;
    ssl_certificate_key /etc/pki/nginx/www.abddb.com.key;
    ssl_session_cache shared:SSL:1m;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;

    location / {
        index index.php index.html index.htm;
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

尝试将配置文件改成了如上的形式,将其他形式的地址统一301重定向到了“www.abddb.com”这个网址下来。修改之后重新查看了必应站点管理平台,至少平台对于robots.txt文件的读取已经变得正常了。

标签: nginx

移动端可扫我直达哦~

推荐阅读

nginx 2023-11-08

nginx下的301跳转与302跳转

301跳转or302跳转301跳转301代表这个定向是永久的,搜索引擎在抓取新内容的同时也将旧的网址交换为重定向之后的网址。而302则向搜索引擎声明这是暂时的重定向,搜索引擎会以为新的网址只是暂时的,会抓取新的内容而保存旧的网址。30...

建站相关 nginx

nginx 2022-10-09

nginx让来访者跳转至https页面

配置服务器实现了Nginx的https访问,配置文件同时支持了80端口以及443端口的访问,详见博文《为nginx服务器开启https》,如果只希望用户通过https访问站点,我们还需要改动一下配置文件,在80端口的设置部分写入一条跳...

建站相关 nginx

nginx 2022-10-09

为nginx服务器开启https服务

随着支持https标准的站点越来越多,浏览器上对于非https站点的标记也似乎越来越醒目了。所以用LNMP重新搭建服务器系统之后,首先想到的就是启用https。为站点开启https,首先需要一套安全证书,博主的域名购买自阿里云,域名证...

建站相关 nginx

nginx 2022-09-30

nginx环境下的虚拟主机配置

Nginx是一个高性能的HTTP和反向代理web服务器,下图是一个安装于阿里云服务器上Nginx文件目录,其中两个蓝色的是文件夹,可用于存放外部的配置文件,Nginx的核心配置文件是“nginx.conf”,图中其正下方有另一个相似的...

建站相关 nginx

nginx 2022-09-29

nginx禁止来访者通过IP访问

Nginx的主配置文件是 nginx.conf ,在阿里云服务器中,它一般位于 /etc/nginx 目录之下,为了避免频繁改动主配置文件,笔者屏蔽掉了主配置文件中的监听80端口的部分(nginx对443端口的监听默认状态为被注释),...

建站相关 nginx

nginx 2022-09-28

为nginx开启gzip压缩

gzip最早由Jean-loup Gailly和Mark Adler创建,用于unix系统的文件压缩。我们在linux中经常会用到后缀为.gz的文件,它们就是gzip格式的。gzip格式已经成为Internet上使用非常普遍的一种数据...

建站相关 nginx