Nginx多个目录伪静态规则

假如目录是这样的:

域名/sort/a/um.php,域名/sort/b/um.php

那要怎么写伪静态呢?

方法一

location / {
index index.php index.html;
 if (!-e $request_filename){
 rewrite ^/yule/(.*)\.html /sort/a/$1.php last;
 rewrite ^/goto/(.*)\.html /sort/b/$1.php last;
 break;
 }
}

方法二

location / {
index index.php index.html;
 if (!-e $request_filename){
 rewrite ^/([a-zA-Z_-]+)/(.+)\.html /sort/$1/$2.php last;
 break;
 }
}
最终得到输出就是:域名/yule/um.html,域名/goto/um.html

PS

方法一用是可以用但是不如方法二灵活
2 条回复A管理员Y会员M游客
  1. tourist LV.1
    小航 M 板凳
    一个一个加.htaccess太麻烦了,好像贵站lanyou.vip就有这个功能呢,请问怎么实现
  2. tourist LV.1
    小航 M 沙发
    域名/v1/api/check.php?url=baidu
    我想实现这样:
    域名/v1/api/check?url=baidu
    就去掉后缀访问,php配合重写怎么实现?
    以至于去掉目录api
    域名/v1/check?url=baidu
    我不允许他直接访问check.php
    就尽量伪装,只允许check.html .htm
    等任意字符访问,.php就报错Nginx的404 not found