标签: rewrite

  • Nginx实现计算目录的父目录

    Nginx实现计算目录的父目录

    小说站的rewrite经常会遇到这样的一个问题,实际保存路径是

    /file/article/html/1/1245/32343.html

    这个时候想要rewrite成

    /book/1245/32343.html


    这样的路径时,在nginx里边不会实现,只能通过php来实现,但使用php实现会大量耗费服务器的资源。

    这里教大家一个nginx规则来实现这样的伪静态

    http {
        # ... 其他 http 配置 ...
    
        map $1 $subaid {
            ~^(\d+)\d{3}$   $1;
            default         0;
        }
    
        server {
            listen 80;
            server_name yourdomain.com;
    
            # ... 其他配置 ...
    
            location /cover/ {
                if ($request_uri ~* ^/cover/(\d+)\.jpg$) {
                    rewrite ^/cover/(\d+)\.jpg$ /files/article/image/$subaid/$1/$1s.jpg last;
                }
            }
    
            # ... 其他配置 ...
        }
    
        # ... 其他 http 配置 ...
    }

    我这里使用的是Cover封面来做的示范,主要就是添加一个map做对应关系。相信通过这个示范你也学废了吧。