301重定向是当用户或搜索引擎向网站服务页器发出浏览请求时,服务器返回的HTTP状态码的一种,表示本网页永久性转移到另一个地址,本文主要讲解Linux主机网站内页出现死链或者更换链接如何通过.htaccess文件一分钟实现301内页重定向。
死链接处理
对于一个网站出现死链有时候不可避免,网站上线后严格是不允许修改路径的,如果路径修改了就会出现死链。但是出现了死链是做301跳转到新页面还是做404删除页面,一般的说搜索引擎对于网站404错误页面的处理就是将其排名进行下降,然后会把这个页面删除,如果我们的网站存在过多的404页面,会降低搜索引擎对我们网站的友好印象,慢慢的蜘蛛对网站每天的访问和收录速度就会降低,最后会使我们的网站出现快照滞后的现象,同时降低网站权重。
使用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.xiaoms$
- RewriteRule ^56$ http://www.xiaomseo.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.xiaoms$
- RewriteRule ^56$ http://www.xiaomseo.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.xiaomseo.com/任何数字 都会跳转到 www.xiaoms/任何数字.html这种带.html后缀的链接。
文章末尾固定信息
1F
这个东西你自己操作了么?不是在网上整的过来的吧?
B1
@ 淡忘SEO 我在自己网站上尝试了如何跳转然后写的这篇文章,网站初期我的文章改过一次链接,产生了大量死链,到诊权重有近一个月一直为零,对于内页做301还是404开始的时候也不确定,不过死链的事情一直很头疼。WordPress有301跳转插件,不过我一直没找到中文版也看不懂。后来在网上寻找半天才知道了如何用代码做linux的首页和内页跳转。你可以试试输入www.xiaomseo.com/任何数字 都会跳转到 http://www.xiaomseo.com/任何数字.html这种带.html后缀的链接。 在织梦系统也试用。
2F
谢博主分享
B1
@ 迅雷电影下载 不客气
3F
RewriteEngine on
RewriteCond %{http_host} ^www.aaa.com$
RewriteRule ^bbb.html$ http://www.aaa.com/ccc.html$1 [R=301,L] 这个写法试试错 坑爹搞了我一早上
,不要 RewriteEngine on 才对
4F
非常不错 借鉴了
来自外部的引用