Nginx实用指南V1 (连载之四:流行CMS博客rewrite写法)

简介:

Nginx Rewirte


1. 基本标记、正则、文件与目录
A、基本标记
last - 基本上都用这个Flag。
※相当于Apache里的[L]标记,表示完成rewrite,不再匹配后面的规则
break - 中止Rewirte,不再继续匹配
redirect - 返回临时重定向的HTTP状态302
permanent - 返回永久重定向的HTTP状态301


B、 正则
* ~ 为区分大小写匹配
* ~* 为不区分大小写匹配
* !~和!~* 分别为区分大小写不匹配及不区分大小写不匹配


C、 文件及目录匹配
* -f和!-f用来判断是否存在文件
* -d和!-d用来判断是否存在目录
* -e和!-e用来判断是否存在文件或目录
* -x和!-x用来判断文件是否可执行

2. Discuz/ joomla/drupal

A、 discuz rewrite

 
  1. rewrite ^(.*)/archiver/((fid|tid)-[\w\-]+\.html)$ $1/archiver/index.php?$2 last
  2. rewrite ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay.php?fid=$2&page=$3 last
  3. rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3 last
  4. rewrite ^(.*)/profile-(username|uid)-(.+)\.html$ $1/viewpro.php?$2=$3 last
  5. rewrite ^(.*)/space-(username|uid)-(.+)\.html$ $1/space.php?$2=$3 last
  6. rewrite ^(.*)/tag-(.+)\.html$ $1/tag.php?name=$2 last

 

B、 joomla rewrite

 
  1. location / { 
  2. expires 30d; 
  3. error_page 404 = @joomla; 
  4. log_not_found off
  5.  
  6. location @joomla { 
  7. rewrite ^(.*)$ /index.php?q=$1 last

 

C、 drupal rewirte

 
  1. if (!-f $request_filename) { 
  2. rewrite ^(.*)$ /index.php?q=$1 last
  3. break; 
  4.  
  5. if (!-d $request_filename) { 
  6. rewrite ^(.*)$ /index.php?q=$1 last
  7. break; 

4、 Wordpress/ typecho等博客系统写法

A、wordpress rewrite

 
  1. if (-f $request_filename/index.html){ 
  2. rewrite (.*) $1/index.html break; 
  3. if (-f $request_filename/index.php){ 
  4. rewrite (.*) $1/index.php; 
  5. if (!-f $request_filename){ 
  6. rewrite (.*) /index.php; 

 

B、typecho rewrite
 

 
  1. location / { 
  2. index index.html index.php; 
  3. if (-f $request_filename/index.html){ 
  4. rewrite (.*) $1/index.html break; 
  5. if (-f $request_filename/index.php){ 
  6. rewrite (.*) $1/index.php; 
  7. if (!-f $request_filename){ 
  8. rewrite (.*) /index.php; 

本文转自守住每一天51CTO博客,原文链接:http://blog.51cto.com/liuyu/294739,如需转载请自行联系原作者


相关文章
|
6月前
|
应用服务中间件 nginx Perl
Nginx系列教程(09) - rewrite
Nginx系列教程(09) - rewrite
62 0
|
9月前
|
应用服务中间件 nginx
Nginx rewrite(URL)地址重定向
Nginx rewrite(URL)地址重定向
335 0
|
4月前
|
tengine Ubuntu 应用服务中间件
憧憬博客Nginx到Tengine的迁移
憧憬博客Nginx到Tengine的迁移
36 0
|
8月前
|
前端开发 应用服务中间件 PHP
nginx之rewrite
nginx之rewrite
48 0
|
9月前
|
域名解析 运维 负载均衡
【运维知识进阶篇】Tomcat集群实战之部署zrlog博客(Tomcat服务安装+静态资源挂载NFS+Nginx负载均衡+HTTPS证书+Redis会话保持)
【运维知识进阶篇】Tomcat集群实战之部署zrlog博客(Tomcat服务安装+静态资源挂载NFS+Nginx负载均衡+HTTPS证书+Redis会话保持)
260 1
|
10月前
|
tengine Ubuntu 应用服务中间件
憧憬博客Nginx到Tengine的迁移
憧憬博客Nginx到Tengine的迁移
77 0
|
11月前
|
负载均衡 前端开发 JavaScript
【Node.js实战】一文带你开发博客项目之联调(导入HTML、Nginx反向代理、CORS解决跨域、与前端联调)
【Node.js实战】一文带你开发博客项目之联调(导入HTML、Nginx反向代理、CORS解决跨域、与前端联调)
170 1
|
11月前
|
应用服务中间件 PHP nginx
一次NGINX rewrite重定向403错误排除
一次NGINX rewrite重定向403错误排除
|
缓存 应用服务中间件 PHP
Nginx及rewrite跳转(二)
Nginx及rewrite跳转(二)
Nginx及rewrite跳转(二)
|
缓存 搜索推荐 应用服务中间件