关于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文件的读取已经变得正常了。