1、Nginx中rewrite实现二级域名、三级域名、泛域名、途径重写 最常用: 静态地址重定向到带参数动态地址rewrite (.*)/service/(.*).html$ $1/service.php?sid=$2 permanent; 反过来: 带参数动态地址重定向到静态地址if ($query_string * id=(.*) set $id $1;rewrite (.*)/article.asp$ $1/article/$id.htm last; 泛域名解析 view plaincopy to clipboardprint?server_name *;server_name_in_red
2、irect off;#设立默认root set $rootdir /usr/local/nginx/html/w3cgroup/;#匹配三级或三级以上域名if ($host * (.+).(.+).(.+).(.+)$) #匹配三级域名 if ($host * (.+).(.+).(.+).(.+)$) #三级域名中有访问指定目录则重定向到相应二级域名下 rewrite .+upload/?(.*)$ $1 permanent;rewrite .+ijc/?(.*)$ $1 permanent;break; #匹配二级域名 if ($host * (.+).(.+).(.+)$) set $r
3、s1 $1; #设立www时root if ($rs1 * www$) set $rootdir /usr/local/nginx/html/platform_ig/;#二级域名中有访问指定目录则重定向到相应二级域名下,注意,这里要使用last rewrite .+upload/?(.*)$ upload/$1 last;rewrite .+ijc/?(.*)$ ijc/$1 last;break; #设立非www二级域名时root if ($rs1 !* www$) set $rootdir /usr/local/nginx/html/w3cgroup/$rs1;#二级域名中有访问指定目录则
4、重定向到相应二级域名下 rewrite .+upload/?(.*)$ $1 permanent;rewrite .+ijc/?(.*)$ $1 permanent;break; #应用root root $rootdir;index index.php index.html;error_page 404 http:/$host/;注意:if () 之间需要空格,否则Nginx.conf会报unknow directive 错误!参照: Nginx Rewrite Flags * last 相称于Apache里L标记,表达完毕rewrite* break 终结匹配,不再匹配背面规则* redi
5、rect 返回302暂时重定向* permanent 返回301永久重定向Nginx正则表达式匹配 * 为区别大小写匹配* * 为不区别大小写匹配* !和!*分别为区别大小写不匹配及不区别大小写不匹配Nginx文献及目录匹配 * -f和!-f用来判断与否存在文献* -d和!-d用来判断与否存在目录* -e和!-e用来判断与否存在文献或目录* -x和!-x用来判断文献与否可执行Nginx全局变量 view plaincopy to clipboardprint?$args $content_length $content_type $document_root $document_uri $host $http_user_agent $http_cookie $limit_rate $request_body_file $request_method $remote_addr $remote_port $remote_user $request_filename $request_uri $query_string $scheme $server_protocol $server_addr $server_name $server_port $uri