301重定向的方法
301重定向定义:
永久重定向(permanent redirect)也被称为301重定向,是一条对网站浏览器的指令来显示浏览器被要求显示的不同的URL,当一个网页经历过其URL的最后一次变化以后时使用。一个永久定向是一种服务器端的重定向,能够被搜索引擎蜘蛛适当地处理。
什么情况下需要301重定向?
- 网站调整(如调整了网站目录结构)
- 网址被永久迁移到了新地址
- 域名失效,更换到新域名
- 多域名指向同一实际网站
- 改变网页扩展名
- 将xxx.com域名重定向到www.xxx.com,引导用户使用标准万维网格式域名
如何实现301重定向?
场景一、阿里云虚拟主机重定向
step1:阿里云控制台,找到自己的主机,
step2:然后进入主机管理控制台
step3:在主机管理控制台,找到 基础环境设置 ⇒ 301重定向。选择想要被重定向的源域名和重定向的目标域名,设置即可。
场景二、apache服务器的.htaccess配置301重定向
前提是Apache服务器
htaccess文件是Apache服务器中的一个配置文件(.htaccess文件一般在网站的根目录)。通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。本文介绍域名www和不带www之间的301重定向。
修改方法
两个情况,即带www的跳转至不带www域名、不带www的跳转至www域名,大家根据情况复制代码,然后将域名修改成自己的即可。
一:不带www的跳转至www域名
RewriteEngine On
RewriteCond %{HTTP_HOST} ^lamplnmp.com [NC]
RewriteRule ^(.*)$ http://www.lamplnmp.com/$1 [L,R=301]
二:带www的跳转至不带www域名
RewriteEngine On
RewriteCond %{HTTP_HOST} !^lamplnmp.com$ [NC]
RewriteRule ^(.*)$ http://lamplnmp.com/$1 [L,R=301]
注意:以上代码直接复制到.htaccess文件,记得将本站域名lamplnmp.com改成你自己的。
windows服务器is6的301重写向设置方法
打开IIS,在IIS里找到已经建立的网站然后,右击选择“属性“。在弹出的对话框里选择主目录输入重定向的域名,然后选择资源的永久重定向确定即可。
2,通过伪静态组件来实现301重定向
window的主机IIS的服务器,需要有安装 ISAPI_Rewrite这个组件。
(如果是虚拟主机需要咨询主机商是否支持)如果支持,则先2个域名都解析到同一个IP,然后http.ini里或则是在在httpd.conf文件开始处加入以下规则:
#此规则表示如果访问是jsphp.net就跳转到www.jsphp.net
# For ISAPI_Rewrite 2.x
RewriteCond Host: ^jsphp.net$
RewriteRule (.*) http://www.jsphp.net$1 [I,RP]
# For ISAPI_Rewrite 3.x
RewriteCond %{HTTP:Host} ^jsphp.net$
RewriteRule (.*) http://www.jsphp.net$1 [NC,R=301]
注意以上两个伪静态的版本,版本不同使用的规则不一样。
3,windwos2008服务器系统的 iis7或则iis7.5 无论是虚拟主机还是独立服务器,可以通web.config来设置
以下代码主要实现www.jsphp.net跳转到jsphp.net
<configuration>
<system.webServer>
<rewrite>
<rule name="WWW Redirect" stopProcessing="true">
<match url=".*" />
<conditions>
<add input="{HTTP_HOST}" pattern="^www.jsphp.net$" />
</conditions>
<action type="Redirect" url="http://www.jsphp.net/{R:0}"
redirectType="Permanent" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
4,Linux系统301设置,将以下规则添加到.htaccess文件。
jsphp.net替换为自己的域名,表示将jsphp.net重定向到www.jsphp.net
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP_HOST} ^jsphp.net$ [NC]
RewriteRule ^(.*)$ http://www.jsphp.net/$1 [R=301,L]
</IfModule>
5,适用于使用Unix网络服务器的用户
通过此指令通知搜索引擎的spider你的站点文件不在此地址下。这是较为常用的办法。
形如:Redirect 301 / http://www.jsphp.net/
6,用ASP/PHP实现301重定向:
ASP:
Response.Status="301 Moved Permanently"
Response.AddHeader "Location","http://www.jsphp.net/"
Response.End
PHP:
header("HTTP/1.1 301 Moved Permanently");
header("Location:http://www.jsphp.net/");
exit();
7,绑定/本地DNS
如果具有对本地DNS记录进行编辑修改的权限,则只要添加一个记录就可以解决此问题。若无此权限,则可要求网站托管服务商对DNS服务器进行相应设置。
版权声明
本站部分原创文章,部分文章整理自网络。如有转载的文章侵犯了您的版权,请联系站长删除处理。如果您有优质文章,欢迎发稿给我们!联系站长:
愿本站的内容能为您的学习、工作带来绵薄之力。
评论