[root@web01 www]# cat /app/server/nginx/conf/vhosts/default.conf server { listen 80 default_server; server_name localhost; root /app/www; index index.php index.htm index.html; rewrite /last.html /index.html last; rewrite /break.html /index.html break; rewrite /redirect.html /index.html redirect;#302臨時重定向 rewrite /permanent.html /index.html permanent;#301永久重定向 rewrite ^/html/(.+?).html$ /post/$1.html permanent; location ~ .*\.(php|php5)?$ { #fastcgi_pass unix:/tmp/php-cgi.sock; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fastcgi.conf; } access_log /app/log/nginx/access/default.log; } [root@web01 www]# tree /app/www/ /app/www/ ├── index.html ├── index.php └── post └── test.html 1 directory, 3 files [root@web01 www]# cat /app/www/index.html clnking@163.com [root@web01 www]# cat /app/www/post/test.html post/test.html
[root@web01 www]# curl 192.168.1.24/last.html clnking@163.com [root@web01 www]# curl --head 192.168.1.24/last.html HTTP/1.1 200 OK Server: nginx/1.4.4 Date: Tue, 02 Aug 2016 01:53:10 GMT Content-Type: text/html Content-Length: 16 Last-Modified: Mon, 18 Jul 2016 11:46:03 GMT Connection: keep-alive ETag: "578cc17b-10" Accept-Ranges: bytes
[root@web01 www]# curl 192.168.1.24/break.html clnking@163.com [root@web01 www]# curl --head 192.168.1.24/break.html HTTP/1.1 200 OK Server: nginx/1.4.4 Date: Tue, 02 Aug 2016 01:54:40 GMT Content-Type: text/html Content-Length: 16 Last-Modified: Mon, 18 Jul 2016 11:46:03 GMT Connection: keep-alive ETag: "578cc17b-10" Accept-Ranges: bytes
[root@web01 www]# curl 192.168.1.24/redirect.html <html> <head><title>302 Found</title></head> <body bgcolor="white"> <center><h1>302 Found</h1></center> <hr><center>nginx/1.4.4</center> </body> </html>
[root@web01 www]# curl 192.168.1.24/permanent.html <html> <head><title>301 Moved Permanently</title></head> <body bgcolor="white"> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx/1.4.4</center> </body> </html>
[root@web01 www]# curl 192.168.1.24/html/test.html <html> <head><title>301 Moved Permanently</title></head> <body bgcolor="white"> <center><h1>301 Moved Permanently</h1></center> <hr><center>nginx/1.4.4</center> </body> </html>
注意:因為301和302不能簡單的只返回狀態碼,還必須有重定向的URL,這就是return指令無法返回301,302的原因了;
301重定向可以說是網頁更改地址後對搜尋引擎最好友好的方法,它代表永久性轉移。
一般來說,只要不是暫時搬移的情況,我們都建議使用301來做轉址。
而且從搜尋引擎優化的角度來看,301重定向是網址進行重定向最為可行的一種辦法。當網站的域名發生變更後,搜尋引擎只對新網址進行索引,
同時又會把舊地址下原有的外部連結如數轉移到新地址下,從而不會讓網站的排名因為網址變更而收到絲毫影響。因此,
在使用301永久性重定向命令讓多個域名指向網站主域時, 亦不會對網站的排名產生任何負面影響。
【301與302轉向的區別】
實施301後,新網址完全繼承舊網址,舊網址的排名等完全清零。
實施302後,對舊網址沒有影響,但新網址不會有排名。