nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx

上传人:b****0 文档编号:18404147 上传时间:2023-08-16 格式:DOCX 页数:15 大小:19.33KB
下载 相关 举报
nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx_第1页
第1页 / 共15页
nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx_第2页
第2页 / 共15页
nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx_第3页
第3页 / 共15页
nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx_第4页
第4页 / 共15页
nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx_第5页
第5页 / 共15页
nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx_第6页
第6页 / 共15页
nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx_第7页
第7页 / 共15页
nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx_第8页
第8页 / 共15页
nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx_第9页
第9页 / 共15页
nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx_第10页
第10页 / 共15页
nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx_第11页
第11页 / 共15页
nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx_第12页
第12页 / 共15页
nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx_第13页
第13页 / 共15页
nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx_第14页
第14页 / 共15页
nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx

《nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx》由会员分享,可在线阅读,更多相关《nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx(15页珍藏版)》请在冰点文库上搜索。

nginx rewrite 参数和例子+常用Rewrite伪静态法则.docx

nginxrewrite参数和例子+常用Rewrite伪静态法则

正则表达式匹配,其中:

1.*~为区分大小写匹配

2.*~*为不区分大小写匹配

3.*!

~和!

~*分别为区分大小写不匹配及不区分大小写不匹配

文件及目录匹配,其中:

1.*-f和!

-f用来判断是否存在文件

2.*-d和!

-d用来判断是否存在目录

3.*-e和!

-e用来判断是否存在文件或目录

4.*-x和!

-x用来判断文件是否可执行

flag标记有:

1.*last相当于Apache里的[L]标记,表示完成rewrite

2.*break终止匹配,不再匹配后面的规则

3.*redirect返回302临时重定向地址栏会显示跳转后的地址

4.*permanent返回301永久重定向地址栏会显示跳转后的地址

一些可用的全局变量有,可以用做条件判断(待补全)

1.$args

2.$content_length

3.$content_type

4.$document_root

5.$document_uri

6.$host

7.$http_user_agent

8.$http_cookie

9.$limit_rate

10.$request_body_file

11.$request_method

12.$remote_addr

13.$remote_port

14.$remote_user

15.$request_filename

16.$request_uri

17.$query_string

18.$scheme

19.$server_protocol

20.$server_addr

21.$server_name

22.$server_port

23.$uri

结合QeePHP的例子

1.if(!

-d$request_filename){

2.rewrite^/([a-z-A-Z]+)/([a-z-A-Z]+)/?

(.*)$/index.php?

namespace=user&controller=$1&action=$2&$3last;

3.rewrite^/([a-z-A-Z]+)/?

$/index.php?

namespace=user&controller=$1last;

4.break;

多目录转成参数

=>

1.if($host~*(.*)/.domain/.com){

2.set$sub_name$1;  

3.rewrite^/sort//(/d+)//?

$/index.php?

act=sort&cid=$sub_name&id=$1last;

4.}

目录对换

/123456/xxxx->/xxxx?

id=123456

1.rewrite^/(/d+)/(.+)//$2?

id=$1last;

例如下面设定nginx在用户使用ie的使用重定向到/nginx-ie目录下:

1.if($http_user_agent~MSIE){

2.rewrite^(.*)$/nginx-ie/$1break;

3.}

目录自动加“/”

1.if(-d$request_filename){

2.rewrite^/(.*)([^/])$http:

//$host/$1$2/permanent;

3.}

禁止htaccess

1.location~//.ht{

2.     denyall;

3.   }

禁止多个目录

1.location~^/(cron|templates)/{

2.     denyall;

3.break;

4.   }

禁止以/data开头的文件

可以禁止/data/下多级目录下.log.txt等请求;

1.location~^/data{

2.     denyall;

3.   }

禁止单个目录

不能禁止.log.txt能请求

1.location/searchword/cron/{

2.     denyall;

3.   }

禁止单个文件

1.location~/data/sql/data.sql{

2.     denyall;

3.   }

给favicon.ico和robots.txt设置过期时间;

这里为favicon.ico为99天,robots.txt为7天并不记录404错误日志

1.location~(favicon.ico){

2.         log_not_foundoff;

3.expires99d;

4.break;

5.   }

6. 

7.   location~(robots.txt){

8.         log_not_foundoff;

9.expires7d;

10.break;

11.   }

设定某个文件的过期时间;这里为600秒,并不记录访问日志

1.location^~/html/scripts/loadhead_1.js{

2.         access_log  off;

3.         root/opt/lampp/htdocs/web;

4.expires600;

5.break;

6.    }

文件反盗链并设置过期时间

这里的return412为自定义的http状态码,默认为403,方便找出正确的盗链的请求

“rewrite^/

“access_logoff;”不记录访问日志,减轻压力

“expires3d”所有文件3天的浏览器缓存

1.location~*^.+/.(jpg|jpeg|gif|png|swf|rar|zip|css|js)${

2.valid_referersnoneblocked**localhost208.97.167.194;

3.if($invalid_referer){

4.  rewrite^/

5.  return412;

6.  break;

7.}

8.         access_log  off;

9.         root/opt/lampp/htdocs/web;

10.expires3d;

11.break;

12.   }

只充许固定ip访问网站,并加上密码

1.root /opt/htdocs/www;

2.allow  208.97.167.194;

3.allow  222.33.1.2;

4.allow  231.152.49.4;

5.deny  all;

6.auth_basic"C1G_ADMIN";

7.auth_basic_user_filehtpasswd;

将多级目录下的文件转成一个文件,增强seo效果

/job-123-456-789.html指向/job/123/456/789.html

1.rewrite^/job-([0-9]+)-([0-9]+)-([0-9]+)/.html$/job/$1/$2/jobshow_$3.htmllast;

将根目录下某个文件夹指向2级目录

如/shanghaijob/指向/area/shanghai/

如果你将last改成permanent,那么浏览器地址栏显是/location/shanghai/

1.rewrite^/([0-9a-z]+)job/(.*)$/area/$1/$2last;

上面例子有个问题是访问/shanghai时将不会匹配

1.rewrite^/([0-9a-z]+)job$/area/$1/last;

2.rewrite^/([0-9a-z]+)job/(.*)$/area/$1/$2last;

这样/shanghai也可以访问了,但页面中的相对链接无法使用,

如./list_1.html真实地址是/area/shanghia/list_1.html会变成/list_1.html,导至无法访问。

那我加上自动跳转也是不行咯

(-d$request_filename)它有个条件是必需为真实目录,而我的rewrite不是的,所以没有效果

1.if(-d$request_filename){

2.rewrite^/(.*)([^/])$http:

//$host/$1$2/permanent;

3.}

知道原因后就好办了,让我手动跳转吧

1.rewrite^/([0-9a-z]+)job$/$1job/permanent;

2.rewrite^/([0-9a-z]+)job/(.*)$/area/$1/$2last;

文件和目录不存在的时候重定向:

1.if(!

-e$request_filename){

2.proxy_passhttp:

//127.0.0.1;

3.}

域名跳转

1.server

2.   {

3.       listen    80;

4.       server_name ;

5.       indexindex.htmlindex.htmindex.php;

6.       root /opt/lampp/htdocs/www;

7.       rewrite^/

8.       access_log off;

9.   }

多域名转向

1.server_name ;

2.       indexindex.htmlindex.htmindex.php;

3.       root /opt/lampp/htdocs;

4.if($host~"c1gstudio/.net"){

5.rewrite^(.*)$1permanent;

6.}

三级域名跳转

1.if($http_host~*"^(.*)/.i/.c1gstudio/.com$"){

2.rewrite^(.*)$1;

3.break;

4.}

域名镜向

1.server

2.   {

3.       listen    80;

4.       server_name ;

5.       indexindex.htmlindex.htmindex.php;

6.       root /opt/lampp/htdocs/www;

7.       rewrite^/(.*)last;

8.       access_log off;

9.   }

某个子目录作镜向

1.location^~/zhaopinhui{

2. rewrite^.+last;

3. break;

4.   }

discuzucenterhome(uchome)rewrite

1.rewrite^/(space|network)-(.+)/.html$/$1.php?

rewrite=$2last;

2.rewrite^/(space|network)/.html$/$1.phplast;

3.rewrite^/([0-9]+)$/space.php?

uid=$1last;

discuz7rewrite

1.rewrite^(.*)/archiver/((fid|tid)-[/w/-]+/.html)$$1/archiver/index.php?

$2last;

2.rewrite^(.*)/forum-([0-9]+)-([0-9]+)/.html$$1/forumdisplay.php?

fid=$2&page=$3last;

3.rewrite^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)/.html$$1/viewthread.php?

tid=$2&extra=page/%3D$4&page=$3last;

4.rewrite^(.*)/profile-(username|uid)-(.+)/.html$$1/viewpro.php?

$2=$3last;

5.rewrite^(.*)/space-(username|uid)-(.+)/.html$$1/space.php?

$2=$3last;

6.rewrite^(.*)/tag-(.+)/.html$$1/tag.php?

name=$2last;

给discuz某版块单独配置域名

1.server_name ;

2. 

3.   location=/{

4.    if($http_host~news/$){

5. rewrite^.+last;

6. break;

7.}

8.   }

discuzucenter头像rewrite优化

1.location^~/ucenter{

2.   location~.*/.php?

$

3.   {

4. #fastcgi_pass unix:

/tmp/php-cgi.sock;

5. fastcgi_pass 127.0.0.1:

9000;

6. fastcgi_indexindex.php;

7. includefcgi.conf;   

8.   }

9. 

10.   location/ucenter/data/avatar{

11.log_not_foundoff;

12.access_log  off;

13.location~/(.*)_big/.jpg${

14.  error_page404/ucenter/images/noavatar_big.gif;

15.}

16.location~/(.*)_middle/.jpg${

17.  error_page404/ucenter/images/noavatar_middle.gif;

18.}

19.location~/(.*)_small/.jpg${

20.  error_page404/ucenter/images/noavatar_small.gif;

21.}

22.expires300;

23.break;

24.   }

25.            }

jspacerewrite

1.location~.*/.php?

$

2.       {

3.          #fastcgi_pass unix:

/tmp/php-cgi.sock;

4.          fastcgi_pass 127.0.0.1:

9000;

5.          fastcgi_indexindex.php;

6.          includefcgi.conf;   

7.       }

8. 

9.       location~*^/index.php/

10.       {

11.   rewrite^/index.php/(.*)/index.php?

$1break;

12.          fastcgi_pass 127.0.0.1:

9000;

13.          fastcgi_indexindex.php;

14.          includefcgi.conf;

15.       }

信赖此刻大部门用LinuxVPS的伴侣都在利用这个敏捷传布的Nginx,本日就清算一下最常见的PHP法式的Rewrite(伪静态法则)。

Wordpress:

location/{

indexindex.htmlindex.php;

if(-f$request_filename/index.html){

rewrite(.*)$1/index.htmlbreak;

}

if(-f$request_filename/index.php){

rewrite(.*)$1/index.php;

}

if(!

-f$request_filename){

rewrite(.*)/index.php;

}

}

PHPCMS:

location/{

###以下为PHPCMS伪静态化rewrite法则

rewrite^(.*)show-([0-9]+)-([0-9]+)\.html$$1/show.php?

itemid=$2&page=$3;

rewrite^(.*)list-([0-9]+)-([0-9]+)\.html$$1/list.php?

catid=$2&page=$3;

rewrite^(.*)show-([0-9]+)\.html$$1/show.php?

specialid=$2;

####以下为PHPWind伪静态化rewrite法则

rewrite^(.*)-htm-(.*)$$1.php?

$2last;

rewrite^(.*)/simple/([a-z0-9\_]+\.html)$$1/simple/index.php?

$2last;

}

ECSHOP:

if(!

-e$request_filename)

{

rewrite"^/index.phplast;

rewrite"^/category$"/index.phplast;

rewrite"^/feed-c([0-9]+)\.xml$”/feed.php?

cat=$1last;

rewrite“^/feed-b([0-9]+)\.xml$”/feed.php?

brand=$1last;

rewrite“^/feed\.xml$”/feed.phplast;

rewrite“^/category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-]*)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)\.html$”/category.php?

id=$1&brand=$2&price_min=$3&price_max=$4&filter_attr=$5&page=$6&sort=$7&order=$8last;

rewrite“^/category-([0-9]+)-b([0-9]+)-min([0-9]+)-max([0-9]+)-attr([^-]*)(.*)\.html$”/category.php?

id=$1&brand=$2&price_min=$3&price_max=$4&filter_attr=$5last;

rewrite“^/category-([0-9]+)-b([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)\.html$”/category.php?

id=$1&brand=$2&page=$3&sort=$4&order=$5last;

rewrite“^/category-([0-9]+)-b([0-9]+)-([0-9]+)(.*)\.html$”/category.php?

id=$1&brand=$2&page=$3last;

rewrite“^/category-([0-9]+)-b([0-9]+)(.*)\.html$”/category.php?

id=$1&brand=$2last;

rewrite“^/category-([0-9]+)(.*)\.html$”/category.php?

id=$1last;

rewrite“^/goods-([0-9]+)(.*)\.html”/goods.php?

id=$1last;

rewrite“^/article_cat-([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)(.*)\.html$”/article_cat.php?

id=$1&page=$2&sort=$3&order=$4last;

rewrite“^/article_cat-([0-9]+)-([0-9]+)(.*)\.html$”/article_cat.php?

id=$1&page=$2last;

rewrite“^/article_cat-([0-9]+)(.*)\.html$”/article_cat.php?

id=$1last;

rewrite“^/article-([0-9]+)(.*)\.html$”/article.php?

id=$1last;

rewrite“^/brand-([0-9]+)-c([0-9]+)-([0-9]+)-(.+)-([a-zA-Z]+)\.html”/brand.php?

id=$1&cat=$2&

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2