V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
baodaren8
V2EX  ›  问与答

伪静态规则冲突然的问题,在线等,挺急的。

  •  
  •   baodaren8 · 2019-01-24 14:27:09 +08:00 · 627 次点击
    这是一个创建于 1925 天前的主题,其中的信息可能已经有所发展或是发生改变。

    规则如下(下面两个规则是放在同一个文件里的):

    新程序的规则:

    location / {
    rewrite "^/page/([0-9]+)$" /page/show.php?page=$1 last;
    rewrite "^/([0-9]+).html$" /content.php?id=$1 last;
    rewrite "^/zt/([^_/.]+)/([0-9]+)$" /tag/tag.php?text=$1&page=$2 last;
    rewrite "^/zt/([^_/.]+)$" /tag/tag.php?text=$1 last;
    rewrite "^/([a-z]+)/([0-9]+)$" /list.php?type=$1&page=$2 last;
    rewrite "^/([a-z]+)/$" /list.php?type=$1 last;
    rewrite "^/([a-z]+)/([0-9]+)/$" /list.php?type=$1&page=$2 last;
    rewrite "^/([a-z]+)$" /list.php?type=$1 last;
    rewrite "^/sitemap.html$" /sitemap.php last;
    break;
    }

    原有程序( DZ )的规则:

    rewrite ^/(.)/$ /$1 permanent; if (!-d $request_filename){ set $rule_1 1$rule_1; } if (!-f $request_filename){ set $rule_1 2$rule_1; } if ($rule_1 = "21"){
    rewrite ^([^.]
    )/(.+)/$ $1/portal.php?mod=topic&topic=$2 last;
    rewrite ^([^.])/article-([0-9]+)-([0-9]+).html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
    rewrite ^([^.]
    )/forum-(\w+)-([0-9]+).html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
    rewrite ^([^.])/thread-([0-9]+)-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=viewthread&tid=$2&extra=page%3D$4&page=$3 last;
    rewrite ^([^.]
    )/group-([0-9]+)-([0-9]+).html$ $1/forum.php?mod=group&fid=$2&page=$3 last;
    rewrite ^([^.])/space-(username|uid)-(.+).html$ $1/home.php?mod=space&$2=$3 last;
    rewrite ^([^.]
    )/blog-([0-9]+)-([0-9]+).html$ $1/home.php?mod=space&uid=$2&do=blog&id=$3 last;
    rewrite ^([^.])/(fid|tid)-([0-9]+).html$ $1/index.php?action=$2&value=$3 last;
    rewrite ^([^.]
    )/([a-z]+[a-z0-9_]*)-([a-z0-9_-]+).html$ $1/plugin.php?id=$2:$3 last;
    #if (!-e $request_filename) {

    return 404;

    #}
    }

    原本这个 DZ 的规则不是这样的,这是改了的,原因详见: https://www.v2ex.com/t/522747

    现在的问题就是,新程序专题、栏目页面后面不能有斜杠了。

    比如新程序正确的专题页面栏目页页面应该如下:
    http://www.123456789.com/fenlei/
    http://www.123456789.com/zt/tupian/

    但是现在这个规则,你加了斜杠,就显示打不开,不加则可以。

    比如新程序专题页面对应的是这个:
    rewrite "^/zt/([^_/.]+)$" /tag/tag.php?text=$1 last;
    加了斜杠的话,就是下面这样:
    rewrite "^/zt/([^_/.]+)/$" /tag/tag.php?text=$1 last;
    它就打不开了。

    不知道我有没有描述清楚,但大概就是这么个问题。
    新程序单独的规则在别的域名下,是正常的,就是在这个和 DZ 一起的规则里面,似乎有冲突了。

    现在求解决,先谢谢各位了

    1 条回复    2019-01-25 09:01:37 +08:00
    baodaren8
        1
    baodaren8  
    OP
       2019-01-25 09:01:37 +08:00
    有没有大佬帮我看一下,谢谢了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2450 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:15 · PVG 22:15 · LAX 07:15 · JFK 10:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.