首页 博客模板 网站素材 网站工具 Discuz!商业 个人博客 QQ工具 生活咨询 博客大全

网站出现死链了内页301重定向恢复

301重定向是当用户或搜索引擎向网站服务页器发出浏览请求时,服务器返回的HTTP状态码的一种,表示本网页永久性转移到另一个地址,本文主要讲解Linux主机网站内页出现死链或者更换链接如何通过.htaccess文件一分钟实现301内页重定向。


死链接处理
对于一个网站出现死链有时候不可避免,网站上线后严格是不允许修改路径的,如果路径修改了就会出现死链。但是出现了死链是做301跳转到新页面还是做404删除页面,一般的说搜索引擎对于网站404错误页面的处理就是将其排名进行下降,然后会把这个页面删除,如果我们的网站存在过多的404页面,会降低搜索引擎对我们网站的友好印象,慢慢的蜘蛛对网站每天的访问和收录速度就会降低,最后会使我们的网站出现快照滞后的现象,同时降低网站权重。

使用301重定向来处理这样就可以保留之前页面上的权重,并且能够将其传递到新的跳转页面。一般的用户访问我们的网站都是随机的,所以对于页面位置是否移动不会注意,即使是老用户他们关心的也只是页面上内容,而不是位置。301重定向的设置要注意细节,再做重定向的跳转应设置到相同或类似的页面,否则这种强制性的跳转行为会影响用户对我们网站印象,也可能会引起搜索引擎的反感会怀疑我们使用作弊跳转手段。

301重定向方法
通过.htaccess来实现网站内页301跳转

如果你的网站根目录中已经存在了.htaccess文件,那么你可以直接修改该文件,然后将规则添加进去,如果你的网站根目录中不存在.htaccess文件,你可以先自己创建个htaccess.txt这样的空文件,然后添加如下规则,建成后将htaccess.txt文件上传到网站根目录,然后将htaccess.txt名修改为.htaccess

1. aaa.com 301跳转到 www.aaa.com
RewriteEngine on
RewriteCond %{http_host} ^aaa.com$ [NC]
RewriteRule ^(.*)$ http://www.aaa.com/$1 [R=301,L]


2. www.aaa.com 301跳转到 www.bbb.com
 
RewriteEngine on
RewriteCond %{http_host} ^www.aaa.com$ [NC]
RewriteRule ^(.*)$ http://www.bbb.com/$1 [R=301,L]

3. www.aaa.com/bbb.html 301跳转到二级域名 bbb.aaa.com
 
RewriteEngine on
RewriteCond %{http_host} ^www.aaa.com$ [NC]
RewriteRule ^bbb.html$ http://bbb.aaa.com/$1 [R=301,L]

4. www.aaa.com/bbb.html 301跳转到 www.aaa.com/ccc.html
 
RewriteEngine on
RewriteCond %{http_host} ^www.aaa.com$
RewriteRule ^bbb.html$ http://www.aaa.com/ccc.html$1 [R=301,L]

 

相关注释:
1、(.*) 通配符意思及全部匹配;

2、[NC] 在文章页面不能添加;

3、$符号后面有空格;

4、通过.htaccess文件规则跳转方法只有在Linux主机才适用

5、如果是wordpress设置的伪静态你把跳转代码放到<IfModule mod_rewrite.c>……</IfModule>之间没有特殊情况不要去点击wordpress后台管理中“设置->固定链接”,因为只要你点击了“固定链接”,系统会将<IfModule mod_rewrite.c>……</IfModule>模块的内容初始化,解决办法就是你可以把代码放到外面。

 
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{http_host} ^www.jianhuax.com$
RewriteRule ^56$ http://www.jianhuax.com/56.html [R=301,L]
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
 或者你可以这样写,这样点击固定链接就不会受到影响
RewriteEngine On  
RewriteCond %{http_host} ^www.jianhuax.com$  
RewriteRule ^56$ http://www.jianhuax.com/56.html [R=301,L]  
<IfModule mod_rewrite.c>  
RewriteEngine On  
RewriteBase /  
RewriteRule ^index\.php$ - [L]  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule . /index.php [L]  
</IfModule>  
 
如果你的网站有大量的死链通过这种单一的方式添加链接就是个力气活了,不过我们可以通过正则表达式进行匹配,只需要写一个通配符链接就全部搞定了,详细内容可以关注我接下来的文章。 比如:RedirectMatch 301 ^/(\d+)$ /$1.html 我加一条这样的规则,只要用户输入www.jianhuax.com/任何数字  都会跳转到  www.jianhuax.com/任何数字.html这种带.html后缀的链接。
转载请注明本文转自建华兄个人博客http://www.jianhuax.com/jzjs/178.html
发布时间:2018-07-28
热门排行