zoukankan      html  css  js  c++  java
  • Nginx重定向[Rewrite]配置 for wordpress & Discuz

    首先Apache的Rewite规则差别不是很大,但是Nginx的Rewrite规则比Apache的简单灵活多了
    Nginx可以用if进行条件匹配,语法规则类似C
    if ($http_user_agent ~ MSIE) {
    rewrite ^(.*)$ /msie/$1 break;
    }
        Rewrite的Flags
        last - 基本上都用这个Flag。
        break - 中止Rewirte,不在继续匹配
        redirect - 返回临时重定向的HTTP状态302
        permanent - 返回永久重定向的HTTP状态301
        Wordpress的重定向规则:
    if (!-e $request_filename) {
    rewrite ^/(index|atom|rsd).xml$ 
    http://feed.shunz.net
    last;
    rewrite ^([_0-9a-zA-Z-]+)?(/wp-.*) $2 last;
    rewrite ^([_0-9a-zA-Z-]+)?(/.*.php)$ $2 last;
    rewrite ^ /index.php last;
    }
        以下为Discuz完整的Rewrite for Nginx规则
    if (!-f $request_filename) {
    rewrite ^/archiver/((fid|tid)-[w-]+.html)$ /archiver/index.php?$1 last;
    rewrite ^/forum-([0-9]+)-([0-9]+).html$ /forumdisplay.php?fid=$1&page=$2 last;
    rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
    rewrite ^/space-(username|uid)-(.+).html$ /space.php?$1=$2 last;rewrite ^/tag-(.+).html$ /tag.php?name=$1 last;
    }
        正则正则表达式匹配注解
    ~ 为区分大小写匹配
    ~* 为不区分大小写匹配
    !~和!~*分别为区分大小写不匹配及不区分大小写不匹配
    2、文件及目录匹配,其中:
    -f和!-f用来判断是否存在文件
    -d和!-d用来判断是否存在目录
    -e和!-e用来判断是否存在文件或目录
    -x和!-x用来判断文件是否可执行

  • 相关阅读:
    Nginx使用GeoIP模块来限制地区访问
    CenTOS7使用ACL控制目录权限,只给某个用户访问特定目录
    CentOS配置服务开机自启
    设置普通用户输入sudo,免密进入root账户
    Centos安装git并配置ssh
    ThreadLocal线程隔离
    Spring cloud 超时配置总结
    Hystrix超时测试
    mysql limit分页查询效率比拼
    linux CPU100%异常排查
  • 原文地址:https://www.cnblogs.com/hechunhua/p/3300838.html
Copyright © 2011-2022 走看看