先声明下, 是小水水(kimi)发现的, 偶只是配合一下下
随便找一条nginx的rewrite规则, 例如discuz 6.x用的
rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page\%3D$4&page=$3 last;
其实这条规则的不对的, 因为nginx的rewrite的后半部分URL实际地址那里应该是不支持正则的, 也就是说转义符是没必要的, 不然就会造成从”\”开始就断了URL重写
上面一条正确的写法应该是:
rewrite ^(.*)/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ $1/viewthread.php?tid=$2&extra=page%3D$4&page=$3 last;
Centos论坛
你这个好像是 伪静态的规则…
中国第一花木网
收藏了,不错啊
赋闲公子
nginx进行rewrite之后,传给PHP的REQUEST_URI,还是rewrite之前的uri。这点需要注意。
也就是说,不要使用$_SERVER[‘REQUEST_URI’]!