颠末网上查阅和测试,发明Nginx的Rewrite法则和Apache的Rewite法则不同不是很大,险些可以直接利用。好比在Apache中这样写法则
rewrite^/([0-9]{5}).html$/viewthread.php?tid=$1last;
序列号 | CPU | RAM | HDD | 带宽 | 售价(美元) | 免费试用 |
---|---|---|---|---|---|---|
香港服务器1 | E5-2620 | 32G | 1T HDD | 50M/无限流量 | $196.00 | 立即申请 |
香港服务器2 | E5-2650 | 32G | 1T HDD | 50M/无限流量 | $256.00 | 立即申请 |
香港服务器3 | E5-2680 | 32G | 1T HDD | 50M/无限流量 | $316.00 | 立即申请 |
香港服务器4 | E5-2690 | 32G | 1T HDD | 50M/无限流量 | $336.00 | 立即申请 |
香港服务器5 | E5-2697 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器6 | E5-2620*2 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器7 | E5-2650*2 | 32G | 1T HDD | 50M/无限流量 | $436.00 | 立即申请 |
香港服务器8 | E5-2680*2 | 32G | 1T HDD | 50M/无限流量 | $476.00 | 立即申请 |
香港服务器9 | E5-2690*2 | 32G | 1T HDD | 50M/无限流量 | $556.00 | 立即申请 |
香港服务器10 | E5-2697*2 | 32G | 1T HDD | 50M/无限流量 | $596.00 | 立即申请 |
香港服务器11 | E5-2680v4*2 | 32G | 1T HDD | 50M/无限流量 | $696.00 | 立即申请 |
香港服务器12 | E5-2698v4*2 | 32G | 1T HDD | 50M/无限流量 | $796.00 | 立即申请 |
而在Nginx中写成这样写是无法启动的,办理的步伐是加上两个双引号:
rewrite"^/([0-9]{5}).html$"/viewthread.php?tid=$1last;
同时将RewriteRule为Rewrite,,根基就实现了Nginx的Rewrite法则到Apache的Rewite法则的转换。
Rewrite的Flags
last 根基上都用这个Flag。
break 中止Rewirte,不在继承匹配
redirect 返回姑且重定向的HTTP状态302
permanent 返回永久重定向的HTTP状态301
WordPress的Rewrite其实在Nginx下设置WordPress的Rewrite照旧较量简朴的,在location /{..................}内里插手
if(!-f$request_filename){rewrite(.*)/index.php;}
即可实现。
下面是一个完整的vhost的设置文件
server{listen80;server_nameserver110.comwww.server110.com;location/{indexindex.htmlindex.htmindex.php;root/www/wwwroot/server110.com;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;}}location~.php${includefastcgi_params;fastcgi_indexindex.php;fastcgi_pass127.0.0.1:8787;fastcgi_paramSCRIPT_FILENAME/www/wwwroot/server110.com$fastcgi_script_name;}location/server110-status{stub_statuson;access_logoff;}}
Discuz!的Rewrite下面的Rewrite中百分号前面多了个转移字符“”,这在Apache中是需要的,而在Nginx中则是不需要的。
rewrite^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$/viewthread.php?tid=$1&extra=page%3D$3&page=$2last;
正确的应该是
rewrite^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$/viewthread.php?tid=$1&extra=page%3D$3&page=$2last;
这个错误在根基上今朝所有利用Nginx作为处事器,而且开启了Rewrite的网站上存在。包罗Discuz!官方,今朝已经给cnteacher反馈了。Nginx实例代码
server{listen80;server_namewww.server110.comserver110.com;location/{indexindex.htmlindex.htmindex.php;root/www/www.server110.com;rewrite^(.*)/archiver/((fid|tid)-[w-]+.html)$$1/archiver/index.php?$2last;rewrite^(.*)/forum-([0-9]+)-([0-9]+).html$$1/forumdisplay.php?fid=$2&page=$3last;rewrite^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+).html$$1/viewthread.php?tid=$2&extra=page%3D$4&page=$3last;rewrite^(.*)/profile-(username|uid)-(.+).html$$1/viewpro.php?$2=$3last;rewrite^(.*)/space-(username|uid)-(.+).html$$1/space.php?$2=$3last;rewrite^(.*)/tag-(.+).html$$1/tag.php?name=$2last;}location~.php${includefastcgi_params;fastcgi_indexindex.php;fastcgi_pass127.0.0.1:8694;fastcgi_paramSCRIPT_FILENAME/www/www.server110.com$fastcgi_script_name;}location/www.server110.com-status{stub_statuson;access_logoff;}}