各种301大全windows和nginx
为何要使用301重定向
在网站建设中需要网页重定向的情况很多:如网页目录结构变动,网页重命名、网页的扩展名改变、网站域名改变等。如果不做重定向,用户的收藏和搜索引擎数据库中的旧地址只能让访客得到一个404错误信息页面,访问流量白白丧失。不仅如此,之前该页面的一切积累(比如PR值)就都白费了。
301重定向不仅能使页面实现自动跳转,对于搜索引擎来说,也可能可以传递PR值。
nginx重定向规则详细介绍
http://www.jefflei.com/post/1015.html
rewrite命令
nginx的rewrite相当于apache的rewriterule(大多数情况下可以把原有apache的rewrite规则加上引号就可以直接使用),它可以用在server,location 和IF条件判断块中,命令格式如下:
rewrite 正则表达式 替换目标 flag标记
flag标记可以用以下几种格式:
last – 基本上都用这个Flag。
break – 中止Rewirte,不在继续匹配
redirect – 返回临时重定向的HTTP状态302
permanent – 返回永久重定向的HTTP状态301
例如下面这段设定nginx将某个目录下面的文件重定向到另一个目录,KaTeX parse error: Expected '}', got 'EOF' at end of input: …d/.*)/m/(.*)..* $1/nginx-rewrite/KaTeX parse error: Expected 'EOF', got '}' at position 15: 2.gz break; }̲ nginx重定向的IF条…http_user_agent ~ MSIE) {
rewrite ^(.)$ /nginx-ie/$1 break;
}
文件和目录判断
-f和!-f判断是否存在文件
-d和!-d判断是否存在目录
-e和!-e判断是否存在文件或目录
-x和!-x判断文件是否可执行
例如下面设定nginx在文件和目录不存在的时候重定向:
if (!-e r e q u e s t f i l e n a m e ) p r o x y p a s s h t t p : / / 127.0.0.1 / ; r e t u r n 返 回 h t t p 代 码 , 例 如 设 置 n g i n x 防 盗 链 : l o c a t i o n ∗ . ( g i f ∣ j p g ∣ p n g ∣ s w f ∣ f l v ) request_filename) { proxy_pass http://127.0.0.1/; } return 返回http代码,例如设置nginx防盗链: location ~* .(gif|jpg|png|swf|flv) requestfilename) proxypasshttp://127.0.0.1/; return 返回http代码,例如设置nginx防盗链: location ∗.(gif∣jpg∣png∣swf∣flv) {
valid_referers none blocked http://www.jefflei.com/ http://www.leizhenfang.com/;
if (KaTeX parse error: Expected 'EOF', got '}' at position 40: …urn 404; } }̲ set 设置ngin…host != ‘www.jefflei.com’ ) {
rewrite ^/(.)$ http://www.jefflei.com/$1 permanent;
}
…
}
第二种方法:
server {
server_name jefflei.com;
rewrite ^/(.) http://www.jefflei.com/KaTeX parse error: Expected 'EOF', got '}' at position 16: 1 permanent; }̲ 测试了第一种方法ok,这…args
c o n t e n t l e n g t h content_length contentlength content_type
d o c u m e n t r o o t document_root documentroot document_uri
h o s t host host http_user_agent
h t t p c o o k i e http_cookie httpcookie limit_rate
r e q u e s t b o d y f i l e request_body_file requestbodyfile request_method
r e m o t e a d d r remote_addr remoteaddr remote_port
r e m o t e u s e r remote_user remoteuser request_filename
r e q u e s t u r i request_uri requesturi query_string
s c h e m e scheme scheme server_protocol
s e r v e r a d d r server_addr serveraddr server_name
s e r v e r p o r t server_port serve