当前位置:web 服务器 > Apache >>

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$ http://www.xxxx.org/images/$1.jpg

下面再来介绍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;
}
}

补充:Php教程,apache
Apache
IIS
Nginx
Tomcat
如果你遇到web 服务器难题:
访问www.zzzyk.com 试试
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,