apache 301重定向与重定向规则

apache主机通过htaccess文件来实现301重定向的方法,首先看下面代码

 代码如下 复制代码

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(aaa.org)(:80)? [NC]
RewriteRule ^(.*) http://www.aaa.com/$1 [R=301,L]

关于后面的R=301,L是重定向的参数。这里的R可以写数字或者单词,所以还可以写成R=permanent表示永久重定向。L表示重写操作停止

permanent 返回一个永久性重定向状态码(301),表示此资源的位置变动是永久性的

我们在做重定向的时候也许会见到另外一种写法

 代码如下 复制代码

Redirect 301 /old.html http://www.xxxx.org/new.html
Redirect permanent /one http://www.xxxx.org/two
RedirectMatch 301 (.*).gif$ yun_qi_img/ww2.xxxx.org

下面再来介绍Linux/unix服务器,只限于这两种服务器301

把没有www的域名301重定向到带www的域名
新建一个.htaccess文件,增加如下代码:

 代码如下 复制代码

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.url.com$ [NC]
RewriteRule ^(.*)$ http://www.url.com/$1 [L,R=301]

apache 301重定向到单个url

 代码如下 复制代码

RewriteEngine On
Redirect permanent /old-directory/old-file.html http://www.url.com/new-directory/new-file.html

php 301重定向

 代码如下 复制代码

<?
Header( "HTTP/1.1 301 Moved Permanently" );
Header( "Location: http://www.url.com" );
?>

Nginx 301重定向

在对应的Nginx配置文件中加入如下过滤规则和重写规则:
第一种情况:访问A站定向到B站

 代码如下 复制代码

server {
server_name www.A.com ;
rewrite ^(.*) http://www.B.com$1 permanent;
}

第二种情况:不是访问A站的全部重定向到指定页面

 代码如下 复制代码

server {
server_name www.A.com;
if ($host != 'A.com' ) {
rewrite ^/(.*)$ http://www.B.com/$1 permanent;
}
}

时间: 2024-10-02 09:19:46

apache 301重定向与重定向规则的相关文章

301与302重定向的区别有哪些

 一,301永久重定向 被请求的资源已永久移动到新位置,并且将来任何对此资源的引用都应该使用本响应返回的若干个 URI 之一. 如果可能,拥有链接编辑功能的客户端应当自动把请求的地址修改为从服务器反馈回来的地址.除非额外指定,否则这个响应也是可缓存的. 新的永久性的 URI 应当在响应的 Location 域中返回.除非这是一个 HEAD 请求,否则响应的实体中应当包含指向新的 URI 的超链接及简短说明. 如果这不是一个 GET 或者 HEAD 请求,因此浏览器禁止自动进行重定向,除非得到用户

apache 301重定向的详细做法

301重定向可促进搜索引擎优化效果 从搜索引擎优化角度出发,301重定向是网址重定向最为可行的一种办法.当网站的域名发生变更后,搜索引擎只对新网址进行索引,同时又会把旧地址下原有的外部链接如数转移到新地址下,从而不会让网站的排名因为网址变更而收到丝毫影响.同样,在使用301永久性重定向命令让多个域名指向网站主域时,亦不会对网站的排名产生任何负面影响. 关于301重定向的更多内容,大家不妨Google一下.本文只介绍实现方法啦!  301重定向的实现,我以前也写过一篇相关的文章,但这篇文章的解决方

iis下设置301 Redirect 永久重定向的方法_网站应用

网站建设中,时常会遇到需要网页重定向的情况: 1.网站调整,如改变网页目录结构,网页被移到一个新地址. 2.网页扩展名改变,如因应用需要把.php改成.Html或.shtml,在这种情况下,如果不做重定向,则用户收藏夹或搜索引擎数据库中旧地址只能让访问客户还会得到一个404页面错误信息,访问流量白白丧失. 3.注册了多个域名的网站,也需要通过重定向让访问这些域名的用户自动跳转到主站点. 常用的重定向方式有:  1. 301 redirect 301代表永久性转移(Permanently Move

Apache HttpClient中循环重定向的bug详解

在Apache HttpClient 4.0里有个循环重定向的bug,当服务器试图正常的从域名A跳转到B的时候就会发生(我是在 111cn.net 跳 www.111cn.net 的时候发现的),换过最新版也发现还是有这个问题. 跟踪了DefaultRequestDirector.java之后发现,它在内部创建了一个HttpRedirect对象来处理重定向,这个对象会重用你之前的HttpGet对象里的HTTP 头,导致这个bug的根源在于,连Host头也用了,这表示重定向到的新域名如果和老域名如

windows下apache的rewrite开启与规则使用说明

系统环境:Windows Apache 2.2 加载Rewrite模块: 在conf目录下httpd.conf中找到 LoadModule rewrite_module modules/mod_rewrite.so 这句,去掉前边的注释符号"#",或添加这句. 允许在任何目录中使用".htaccess"文件,将"AllowOverride"改成"All"(默认为"None"):  代码如下 复制代码 # A

windows中apache 301页面跳转实现方法

实现301页面跳转之前需要对apache配置做下修改如 apache默认是没有开启mod_rewrite模块的, 1,将  代码如下 复制代码 #LoadModule rewrite_module modules/mod_rewrite.so 这一行前面的#号去掉,http.conf的站点目录配置,另一种是空间用户常用的 改为  代码如下 复制代码 LoadModule rewrite_module modules/mod_rewrite.so, 2,将AllowOverride None 改为

windows中apache 301页面跳转实现方法_Linux

实现301页面跳转之前需要对apache配置做下修改如 apache默认是没有开启mod_rewrite模块的, 1,将 复制代码 代码如下: #LoadModule rewrite_module modules/mod_rewrite.so 这一行前面的#号去掉,http.conf的站点目录配置,另一种是空间用户常用的 改为 复制代码 代码如下: LoadModule rewrite_module modules/mod_rewrite.so, 2,将AllowOverride None 改为

apache 301 将带www的域名转向不带www的域名

一直没怎么注意本博客的跳转问题,偶然间一朋友说及我的博客www.111cn.net和111cn.net没做301,查看之果然是这样.虽然博客后台设置了主域名为111cn.net,但是当www.111cn.net访问过来是,并不会跳转.因此在.htaccess中加入如下代码,完美使apache将其他域名(如带www的域名)转向不带www的域名,记录下来以便分享.代码如下: 环境: 系统 Windows Apache 2.2 我们要实现的代码如下  代码如下 复制代码 RewriteEngine o

apache伪静态与iis伪静态规则与配置区别介绍_Linux

本文章来总结一下关于apache伪静态与iis伪静态区别介绍,主要讲到了一些规则的问题与配置区别,以后大家就可以直接在iis伪静态转换apache,反之也很简单哦. 在我开时打开模式不一样:apache的.htaccess配置文件是以:RewriteEngine On 将写模式打开.Apache伪静态html(URL Rewrite)设置法phpma一 打开 Apache 的配置文件 httpd.conf .phpma二 将#LoadModule rewrite_module modules/m