欢迎来到个人简历网!永久域名:gerenjianli.cn (个人简历全拼+cn)
当前位置:首页 > 范文大全 > 实用文>Nginx的Rewrite重写规则与apache对比linux网页制作

Nginx的Rewrite重写规则与apache对比linux网页制作

2023-11-16 07:43:53 收藏本文 下载本文

“sandyjason”通过精心收集,向本站投稿了3篇Nginx的Rewrite重写规则与apache对比linux网页制作,下面是小编帮大家整理后的Nginx的Rewrite重写规则与apache对比linux网页制作,希望对大家有所帮助。

Nginx的Rewrite重写规则与apache对比linux网页制作

篇1:Nginx的Rewrite重写规则与apache对比linux网页制作

nginx的rewrite重写规则与apache对比

nginx rewrite规则相关指令有if、rewrite、set、return、break等,其中rewrite是最关键的指令,一个简单的nginx rewrite规则语法如下:

rewrite ^/b/(.*).html /play.php教程?video=$1 break;

如果加上if语句,示例如下:

if (!-f $request_filename)

{

rewrite ^/img/(.*)$ /site/$host/images/$1 last;

}

nginx与apache的rewrite规则实例对比

简单的nginx和apache 重写规则区别不大,基本上能够完全兼容。例如:

apache rewrite 规则:

rewriterule ^/(mianshi|xianjing)/$ /zl/index.php?name=$1 [l]

rewriterule ^/ceshi/$ /zl/ceshi.php [l]

rewriterule ^/(mianshi)_([a-za-z]+)/$ /zl/index.php?name=$1_$2 [l]

rewriterule ^/pingce([0-9]*)/$ /zl/pingce.php?id=$1 [l]

nginx rewrite 规则:

rewrite ^/(mianshi|xianjing)/$ /zl/index.php?name=$1 last;

rewrite ^/ceshi/$ /zl/ceshi.php last;

rewrite ^/(mianshi)_([a-za-z]+)/$ /zl/index.php?name=$1_$2 last;

rewrite ^/pingce([0-9]*)/$ /zl/pingce.php?id=$1 last;

由以上示例可以看出,apache的rewrite规则改为nginx的rewrite规则,其实很简单:apache的rewriterule指令换成nginx的rewrite指令,apache的[l]标记换成nginx的last标记,中间的内容不变。

如果apache的rewrite规则改为nginx的rewrite规则后,使用nginx -t命令检查发现nginx.conf配置文件有语法错误,那么可以尝试给条件加上引号。例如一下的nginx rewrite规则会报语法错误:

rewrite ^/([0-9]{5}).html$ /x.jsp教程?id=$1 last;

加上引号就正确了:

rewrite “^/([0-9]{5}).html$” /x.jsp?id=$1 last;

apache与nginx的rewrite规则在url跳转时有细微的区别:

apache rewrite 规则:

rewriterule ^/html/tagindex/([a-za-z]+)/.*$ /$1/ [r=301,l]

nginx rewrite 规则:

rewrite ^/html/tagindex/([a-za-z]+)/.*$ $host/$1/ permanent;

以上示例中,我们注意到,nginx rewrite 规则的置换串中增加了“$host”,这是在nginx中要求的,

另外,apache与nginx的rewrite规则在变量名称方面也有区别,例如:

apache rewrite 规则:

rewriterule ^/user/login/$ /user/login.php?login=1&forward=%{http_host} [l]

nginx rewrite 规则:

rewrite ^/user/login/$ /user/login.php?login=1&forward=$host  last;

apache与nginx rewrite 规则的一些功能相同或类似的指令、标记对应关系:

apache的rewritecond指令对应nginx的if指令;

apache的rewriterule指令对应nginx的rewrite指令;

apache的[r]标记对应nginx的redirect标记;

apache的[p]标记对应nginx的last标记;

apache的[r,l]标记对应nginx的redirect标记;

apache的[p,l]标记对应nginx的last标记;

apache的[pt,l]标记对应nginx的last标记;

允许指定的域名访问本站,其他域名一律跳转到www.aaa.com

apache rewrite 规则:

rewritecond %{http_host}   ^(.*?).domain.com$

rewritecond %{http_host}   !^qita.domain.com$

rewritecond %{document_root}/market/%1/ -f

rewriterule ^/wu/$ /market/%1/ [l]

nginx的if指令不支持嵌套,也不支持and、or等多条件匹配,相比于apache的rewritecond,显得麻烦一些,但是,我们可以通过下一页的nginx配置写法来实现这个示例:

nginx rewrite 规则:

if ($host ~* ^(.*?).domain.com$)

{

set $var_wupin_city $1;

set $var_wupin ‘1′;

}

if ($host ~* ^qita.domain.com$)

{

set $var_wupin ‘0′;

}

if (!-f $document_root/market/$var_wupin_city/)

{

set $var_wupin ‘0′;

}

if ($var_wupin ~ ‘1′)

{

rewrite ^/wu/$ /market/$var_wupin_city/ last;

}

篇2:iis 与apache防盗链方法linux网页制作

目前有一种产品能比较好地支持iis的urlrewrite,名字叫isapi_rewrite,

对于我的网站,我防盗链的方法是在httpd.ini里面加入如下语句

rewritecond host: (.+)

rewritecond referer: (?!1.*).*

rewriterule .*.(?:gif|jpg|png|exe|rar|zip) /block.gif [i,

o]

修改安装目录中的httpd.ini文件(如果这个文件为“只读”属性,则去掉“只读”之后再修改)

添加:

rewritecond host: (.+)

rewritecond referer: (?!1.*).*

rewritecond referer: (?!(.*)(.baidu.com|.google.com|.google.cn|.g.cn|.gougou.com|.soso.com|.sogou.com|.youdao.com|.bing.com|.yahoo.com|.yahoo.cn|.eojoo.com)).*

rewriterule .*.(?:gif|jpg|jpeg|png|bmp) /block.gif [i,o,n]

apache

开启图片防盗链功能需要在htaccess文件中加入以下代码:

rewriteengine on

rewritecond %{http_referer} !^$

rewritecond %{http_referer} !^(www.)?allow1.com(/)?.*$ [nc]

rewritecond %{http_referer} !^(www.)?allow2.com(/)?.*$ [nc]

rewriterule .*.(gif|jpg|jpeg|bmp|png)$ [r,nc,l]

篇3:nginx/apache/iis 伪静态写法与区别linux网页制作

由于工作原因我要把一个伪静态写成实例nginx apache iis三种缓存,下面我们来分别我的实例

apache 伪静态写法

rewriteengine on

rewriterule /rss/(.*).xml$ /rss/rss.php教程?a=$1

rewriterule /xml/(.*).xml$ /xml/xml.php?a=$1

iis 伪静态写法

rewriterule /rss/(.*).xml$ /rss/rss.php?a=$1 [n,i]

rewriterule /xml/(.*).xml$ /xml/xml.php?a=$1 [n,i]

nginx伪静态写法

rewrite ^/rss/(.*).xml$ /rss/rss.php?a=$1 last;

rewrite ^/xml/(.*).xml$ /xml/xml.php?a=$1 last;

它们三者的区别总结

看到上面三个实例,关于nginx/apache/iis 伪静态写法 apache与iis 就是在后面加[n,i]而iis与nginx伪静态写法区别是 开头^并且结束处加个last就行了,

nginx/apache/iis 伪静态写法与区别linux网页制作

一句话他们是大同小义了。

【Nginx的Rewrite重写规则与apache对比linux网页制作】相关文章:

1.网页制作合同

2.网页制作策划书

3.网页制作个人简历

4.网页设计制作规范

5.网页制作教学论文

6.网页制作实习日记

7.网页制作笔试题

8.网站设计与网页制作的基本知识单选题

9.简朴个人简历表格制作(个人简历网页制作)

10.如何优化网页制作流程?

下载word文档
《Nginx的Rewrite重写规则与apache对比linux网页制作.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度: 评级1星 评级2星 评级3星 评级4星 评级5星
点击下载文档

文档为doc格式

  • 返回顶部