发现网站收录不明显,而且uczan.com与www.uczan.com收录不一样,网站权重也是如此,两个完全不同,发现是网站没有做301重定向的原因,实际我是做了301重定向,用得是阿里云主机自带的301重定向,结果作用不大。
阿里云主机自带的301重定向只适合首页重定向,但全站实现不了,需要靠一些代码来实现。在网上找了很多方法,好多不适用,毕竟每个主机与网站程序不同,很容易导致网站打不开,方法我也试了很多,但没有一个适合自己的。
我的网站域名是https,其中包含http,网上给出比较多的就是http的301重定向,结果导致网站打不开,当时后怕极了,因为不懂技术,只能继续找答案,一个个测试,最终搞定了。
下面我将这个方法分享出来,希望能帮到与自己有同样问题的朋友们。
我主机是Linux操作系统,需要用.htaccess伪静态规则来实现301重定向,将不带www域名跳转到带www域名,以及将http重定向到https,下面这个代码足以实现。
因为是zblog程序,.htaccess文件里有整站的伪静态规则代码,不能动,只能将301重定向代码加进去,需要注意的是,千万别乱加,按下面要求加入就好。
<IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTP_HOST} ^uczan.com [NC] RewriteRule ^(.*)$ https://www.uczan.com/$1 [L,R=301] RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.uczan.com/$1 [L,R=301] RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
一开始.htaccess文件只有如下代码:
<IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule>
http 301重定向到https,并且不带www域名跳转到带www域名,代码如下:
RewriteCond %{HTTP_HOST} ^uczan.com [NC] RewriteRule ^(.*)$ https://www.uczan.com/$1 [L,R=301] RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://www.uczan.com/$1 [L,R=301]
只需将上面代码加到RewriteEngine On下面就行了,其它代码不动,并将uczan.com换成你的域名,这样就能解决“不带www域名跳转到带www域名”与“http跳转到https”。
如果你的网站想实现不带www的网址跳转到带www的网址,与http跳转到https,请按照上面方法操作即可。