nginx 重定向例子

nginx实现带参数目录域名重定向二级域名方法


类似把www.cmniu.com/feefef/368.html   定向到  http://game.wap118100.cn/11/368.html


location / {
    rewrite ^/.*/(.*)$ http://game.wap118100.cn/11/$1 permanent;
} 



##重定向到

  location / {
           root  /alidata/www/game;
           index  index.html index.htm index.php;
       	   rewrite ^/(\d+)\/(.*)\.html$ /html/app/$2.html last;
    }



##转发php到9000端口解析

    location ~^(.+\.php)(.*)$ {
      root    /alidata/www/game;
      fastcgi_index   index.php;
      fastcgi_split_path_info ^(.+\.php)(.*)$;
      fastcgi_param   SCRIPT_FILENAME   $document_root$fastcgi_script_name;
      fastcgi_param   PATH_INFO      $fastcgi_path_info;
      fastcgi_param   PATH_TRANSLATED   $document_root$fastcgi_path_info;
      fastcgi_pass   127.0.0.1:9000;
      include   fastcgi_params;
    }


##nginx正则表达式之匹配操作符详解

字符串表达式支持正则表达式,能设定大小写是否敏感。因此共有四个操作符,

如下:

~     区分大小写(大小写敏感)匹配成功 
~*   不区分大小写匹配成功 
!~    区分大小写匹配失败 
!~*  不区分大小写匹配失败


###限制某些类型的客户端的访问

location / {
if ($http_user_agent ~ MSIE) {
return 503;
}
}
#限制IE浏览器访问 MSIE


###针对不同的文件类型(针对盗链做处理)

location ~ .*.(wma|wmv|asf|mp3|mmf|zip|rar|jpg|gif|png|swf|flv)$ {
     if ($http_referer ~* javagg.com) {
     #rewrite ^/ http://www.javagg.com/403.html;
     return 403;
      }
}

###针对不同的目录(针对盗链做处理)

location /img/ {
    root /data/img/;
   if ($http_referer ~* javagg.com) {
             rewrite  ^/  http://www.admin99.net/images/error.gif
             #return   403;
    }
}


location = /

#匹配任何查询,因为所有请求都已 / 开头。但是正则表达式规则和长的块规则将被优先和查询匹配

location ^~ /images/ {

# 匹配任何已/images/开头的任何查询并且停止搜索。任何正则表达式将不会被测试。

location ~* .(gif|jpg|jpeg)$ {

# 匹配任何以.gif、.jpg 或 .jpeg 结尾的请求

if ($http_user_agent ~ MSIE) {
  rewrite  ^(.*)$  /msie/$1  break;
}
 
if ($http_cookie ~* "id=([^;] +)(?:;|$)" ) {
  set  $id  $1;
}

Nginx 内置的变量 $http_user_agent

$http_cookie

使用符号~*和~模式匹配的正则表达式:

1.~为区分大小写的匹配。
2.~*不区分大小写的匹配(匹配firefox的正则同时匹配FireFox)。
3.!~和!~*意为“不匹配的”。



你可能感兴趣的:(nginx 重定向例子)