一站式百度SEO排名优化!-找老刘博客 低投入,高转化,精益求精、一丝不苟:旨在提供更好的SEO服务!

首页>>SEO技术

重复收录风险:https改造导致的url共存和去除index.php解决方案

首页 2019-11-13 SEO技术 1997 ℃Tags: https改造 重复收录


近期遇到https升级改造造成的url共存问题,理论上会有重复收录风险,对于SEO优化不利,故此发现问题解决问题的过程分享给大家。啥叫重复收录问题呢,说起来一大串实际上很简单,比如:

1573626604210161.png

改造后域名是:https://www.域名.com/products.html

但是,http://www.域名.com/products.html这个url链接,也依然可以访问,这就造成了两个url同一个内容,对于正常的用户没有影响,但是搜索引擎没有那么“聪明”,故此我们需要做一定的调整,让其达到,访问“http://www.域名.com/products.html”直接跳转到“https://www.域名.com/products.html”这个链接的目的。

本次笔者就遇到了这个问题,某个网站首页301跳转完美适配,但是内页存在上文中讲述的url同时存在问题,作为一个称职的网站运营SEO优化人员(强迫症患者),我们将和大家一起解决这个问题。生活中会不断地挖掘对称美的地方,而且一定会想尽办法减少重复的工作。仿佛生活就是编码,逻辑贯穿其中

image.png

网站安装SSL证书后,会出现http和https共存的情况,即HTTP不会自动跳转到HTTPS,SSL证书大全来说说使用.htaccess文件,将http自动301强制跳转到https的方法:


http301跳转到https

注意.htaccess是Apache服务器下的配置文件,如果你的服务器或者虚拟主机不是Apache环境则不适用此方法!

这里必须单独解释一下,过程中出现了https链接中“../index.php/..”问题,直接在.htaccess文件加上“RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]”即可。


1、在网站的根目录创建.htaccess文件,如果已存在.htaccess文件,则直接编辑即可;

2、用编辑器打开.htaccess文件,在最下面添加写入如下语句:


<IfModule mod_rewrite.c>

  Options +FollowSymlinks

RewriteEngine On

RewriteCond %{HTTPS} off

RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L] 

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

#如果页面出现"No input file specified." 请注释第一条,启用第二条

RewriteRule ^(.*)$ index.php/$1 [QSA,PT,L]

  #RewriteRule ^(.*)$ index.php [E=PATH_INFO:$1,QSA,PT,L]  

</IfModule>


然后给大家解释一下以上代码是什么意思:

(1).RewriteEngine On:开启重写功能。

(2).RewriteCond:规定重写的条件。

(3).RewriteRule:重写命令

(4).%{SERVER_PORT}:获取服务器端口

(5).%{http_host}:获取访问的域名

(6).^(.*)$:获取URL除去查询字符串的部分

(7).$1:表示^(.*)$小括号所匹配的内容,$2表示第二个小括号所匹配的内容,以此类推。

(8).[R=301]:表示原始网址重定向为后来重写的网址。

(9).[L]:Last rule(最后一条规则): 告诉服务器在本条规则执行完后停止重写URL。立即停止重写操作,并不应用其他重写规则。它对应于Perl中的last命令或C语言中的break命令。这个标记用于阻止当前已被重写的URL被后继规则次重写。例如,使用它可以重写根路径的URL(“/”)为实际存在的URL(比如:”/e/www/”)。

1573626701144098.jpg


上文中我们说的是Apache环境的解决方案,那如果是nginx环境呢?下面是整理的,nginx服务器怎样将http整站全部301跳转到https的方法。

如果你LINUX服务器购买了SSL并完成部署,那么解析来就需要将网站http的访问协议修改为https,下面是nginx服务器将http页面整站全部301重定向到https页面最新支持的写法:


文件/etc/nginx/conf/nginx.conf


server {

    listen      80;

    server_name    my.domain.com;

    return      301 https://$server_name$request_uri;

}

server {

    listen      443 ssl;

    server_name    my.domain.com;

    [....]

}

注意,如果你的server_name如果填写的localhost,那么https会自动跳转到访问localhost.


以上就是http如何全站301重定向到https的全部内容了,使用起来很是简单便捷,你学会了吗?合肥老刘友情提醒小伙伴们,修改文件之前记得备份,定期备份、修改文件之前备份是个很好的习惯!当然如果能在本地测试完再上传至服务器更为稳妥。

1331.gif

最后这个gif送给有强迫症的小可爱们,叫我红领巾。


搜索
分类
热门标签
  • 首页
  • 电话
  • QQ
  • 联系老刘手机
    1043025812
    联系老刘微信
    扫描微信二维码