301重定向就是向瀏覽器返回一個永久性重定向狀態碼(301),表示此資源的位置變動是永久性的,關于后面的R=301,L是重定向的參數。這里的R可以寫數字或者單詞,所以還可以寫成R=permanent表示永久重定向。L表示重寫操作停止。
apache主機通過htaccess文件來實現301重定向的方法,首先看下面代碼
- RewriteEngine on
- RewriteCond %{HTTP_HOST} ^(aaa.org)(:80)? [NC]
- RewriteRule ^(.*) http://www.companysz.com/$1 [R=301,L]
關于后面的R=301,L是重定向的參數。這里的R可以寫數字或者單詞,所以還可以寫成R=permanent表示永久重定向。
L表示重寫操作停止
permanent 返回一個永久性重定向狀態碼(301),表示此資源的位置變動是永久性的
我們在做重定向的時候也許會見到另外一種寫法
- Redirect 301 /old.html http://www.companysz.com/new.html
- Redirect permanent /one http://www.companysz.com/two
- RedirectMatch 301 (.*).gif$ http://www.companysz.com/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重定向
- 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;
- }
- }
新聞熱點
疑難解答