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
- rewrite ^(.*)/archiver/((fid|tid)-[\w\-]+\.html)$ $1/archiver/index.php?$2 last;
- rewrite ^(.*)/forum-([0-9]+)-([0-9]+)\.html$ $1/forumdisplay.php?fid=$2&page=$3 last;
- rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3 last;
- rewrite ^(.*)/profile-(username|uid)-(.+)\.html$ $1/viewpro.php?$2=$3 last;
- rewrite ^(.*)/space-(username|uid)-(.+)\.html$ $1/space.php?$2=$3 last;
- rewrite ^(.*)/tag-(.+)\.html$ $1/tag.php?name=$2 last;
B、 joomla rewrite
- location / {
- expires 30d;
- error_page 404 = @joomla;
- log_not_found off;
- }
- location @joomla {
- rewrite ^(.*)$ /index.php?q=$1 last;
- }
C、 drupal rewirte
- if (!-f $request_filename) {
- rewrite ^(.*)$ /index.php?q=$1 last;
- break;
- }
- if (!-d $request_filename) {
- rewrite ^(.*)$ /index.php?q=$1 last;
- break;
- }
4、 Wordpress/ typecho等博客系统写法
A、wordpress rewrite
- if (-f $request_filename/index.html){
- rewrite (.*) $1/index.html break;
- }
- if (-f $request_filename/index.php){
- rewrite (.*) $1/index.php;
- }
- if (!-f $request_filename){
- rewrite (.*) /index.php;
- }
B、typecho rewrite
- location / {
- index index.html index.php;
- if (-f $request_filename/index.html){
- rewrite (.*) $1/index.html break;
- }
- if (-f $request_filename/index.php){
- rewrite (.*) $1/index.php;
- }
- if (!-f $request_filename){
- rewrite (.*) /index.php;
- }
- }
本文转自守住每一天51CTO博客,原文链接:http://blog.51cto.com/liuyu/294739,如需转载请自行联系原作者
Nginx实用指南V1 (连载之四:流行CMS博客rewrite写法)相关推荐
- Nginx实用指南V1 (连载之六:cacti监控)
申明:本连载的文章来自:Nginx官网.张 宴BLOG.linuxtone论坛.互联网.本人原创.并尽力在官网文档的基础发表原创作品.并保证文档的质量与错误率.如有作者认为本文有涉及版权问 题请与我联 ...
- Nginx+Docker+Jekyll+阿里云ECS+备案搭建博客全记录
"记录本站搭建全过程,为想要自己搭建博客的朋友提供一个参考" 在我的博客网站中查看本文 前言与准备 Docker Docker是一个很方便的跨平台应用容器引擎,让开发者可以打包他们 ...
- 《软技能:代码之外的生存指南》一一21.1 为什么博客如此重要
本节书摘来自异步社区出版社<软技能:代码之外的生存指南>一书中的第21章,第21.1节,作者: [美]John Z. Sonmez(约翰 Z. 森梅兹),更多章节内容可以访问云栖社区&qu ...
- .net开发网站CMS博客框架
做一个网站基本步骤一般完整的包括需求分析-ui设计-前端开发-后端开发-测试-运维,一般需求确定了基本就可以,这里主要介绍后台.net网站开发,即拿到前端代码后如何进行.net后台开发,这里以一个博客 ...
- octobercms mysql_手把手教你选择一款适合自己的CMS/博客程序
第1章 CMS基础介绍 1.1 CMS是什么? CMS是Content Management System的英文缩写,中文译作内容弄管理系统.说得简单点,Wordpress这种博客系统就是一种CMS. ...
- WordPress响应式主题:Three/博客/CMS/博客导航三合一主题
效果演示:http://cxyo.vip/ 下载地址在最后面 主题使用说明 1.首页设置 ①选择首页布局:博客布局或杂志布局或博客导航,默认博客布局,若选择杂志布局或博客导航后,必须设置CMS/导航布 ...
- 如何利用宝塔面板+nginx建立一个自己的网站(如博客图床等等)
其实最近一直在搭建自己的博客和自己的图床,遇见了一些各种各样的问题,所以在这里总结一下如何利用宝塔面板来建立一个网站. 1.网站在服务器中的形式 其实网站虽然是网站我们能访问到,实际上我们访问到的都是 ...
- NodeJS+Mongodb+Express做CMS博客系统
楼主正在用业余时间开发中-- ,目前的版本仅支持会员系统,尝鲜一下吧~ hi-blog 一个 nodejs+express+mongodb 的 cms 系统 怎么启动 默认你已经安装了 mongodb ...
- Diango博客--11.Nginx + Gunicorn + Supervisor 方式部署
文章目录 0.部署前准备 1.创建一个超级用户 2.更新 SQLite3 3.安装 Python3 .pip3.6以及 Pipenv 4.部署代码 5.使用 Gunicorn 6.启动 Nginx 服 ...
最新文章
- java 庖丁解牛api_Java Restful API Best Practices
- redchat怎么编写shell脚本_shell脚本编写思路
- 确认过眼神(*╹▽╹*),这就是大家想要的BCH
- python是大学必修课吗-好消息!今天,审计、会计、税务、财务主管彻底沸腾了……...
- a commit git 参数是什么意思_深入理解Git - 一切皆commit
- 数据处理程序的一点经验
- python测试代码运行时间_python测量代码运行时间方法
- Java 正则表达式匹配模式[贪婪型、勉强型、占有型]
- android 全局 窗口,学习笔记:WindowManager显示Android全局悬浮窗口
- 拓端tecdat|R语言法国足球联赛球员多重对应分析(MCA)
- 电信校园网宽带创翼破解,路由器PPPOE拦截法
- 计算机笔记--【JVM】
- 基于蚁群算法的MTSP问题
- 如何建立风险分析模型
- 尽挥洒最终版 思嫣_温州方言歌曲_温州话歌曲
- 学好C/C++编程,走遍天下都不怕
- Error:Cannot run program XXX (in directory C:\Users\Administrator\.IntelliJIdeaXXX
- 玩转树莓派 一、为你的树莓派烧录系统镜像
- 20世纪中国耕地与复种指数的变化
- 计算机英语教程第六版pdf,计算机英语教程.pdf
热门文章
- mysql空间扩展 VS PostGIS
- 函数式编程与REST的思考
- OpenGL中glTranslate*(),glRotation*(),glScale*()函数的用法(*是参数数据类型)
- ROS Gazebo(五):ros_control和gazebo仿真总结
- Appium使用のhelloworld
- 自动化测试,从入门到放弃
- 解决Access denied for user #39;#39;@#39;localhost#39; to database #39;mysql#39;问题
- (39.3) Spring Boot Shiro权限管理【从零开始学Spring Boot】
- Hypertext Transfer Protocol -- HTTP/1.1
- 艾伟也谈项目管理,说说我们项目组的考核