301重定向就是向浏览器返回一个永久性重定向状态码(301),表示此资源的位置变动是永久性的,关于后面的R=301,L是重定向的参数。这里的R可以写数字或者单词,所以还可以写成R=permanent表示永久重定向。L表示重写操作停止。
apache主机通过htaccess文件来实现301重定向的方法,首先看下面代码
- RewriteEngine on
- RewriteCond %{HTTP_HOST} ^(aaa.org)(:80)? [NC]
- RewriteRule ^(.*) http:
关于后面的R=301,L是重定向的参数。这里的R可以写数字或者单词,所以还可以写成R=permanent表示永久重定向。
L表示重写操作停止
permanent 返回一个永久性重定向状态码(301),表示此资源的位置变动是永久性的
我们在做重定向的时候也许会见到另外一种写法
- Redirect 301 /old.html http:
- Redirect permanent /one http:
- RedirectMatch 301 (.*).gif$ http:
下面再来介绍Linux/unix服务器,只限于这两种服务器301
把没有www的域名301重定向到带www的域名
新建一个.htaccess文件,增加如下代码:
- RewriteEngine On
- RewriteCond %{HTTP_HOST} !^www.url.com$ [NC]
- RewriteRule ^(.*)$ http:
apache 301重定向到单个url
- RewriteEngine On
- Redirect permanent /old-directory/old-file.html http:
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:
- }
第二种情况:不是访问A站的全部重定向到指定页面
- server {
- server_name www.A.com;
- if ($host != 'A.com' ) {
- rewrite ^/(.*)$ http:
- }
- }
|