联系官方销售客服

1835022288

028-61286886

开发框架 版主:迅睿框架研发组
怎么关闭路由匹配
类型:迅睿CMS 更新时间:2020-10-28 10:10:39

怎么关闭路由匹配,仅使用nginx伪静态

我在进行伪静态的时候,使用nignx本身的伪静态,如果不编辑rewrite.php的话就会报404。


nginx伪静态

rewrite ^([^\.]*)/show/(.*).html$ $1/index.php?s=article&c=show&id=$2 last;
rewrite . /index.php last;

rewrite.php必须添加,不然就会报404,但是我主要是想用nginx的伪静态

"show\/(.*).html(.*)"=> 'index.php?s=article&c=show&id=$1',


回帖
  • 迅睿粉丝
    #1楼    迅睿粉丝
    2020-10-27 05:11:30
    iPhone手机 0
    首先把cms后台代码复制到NGINX配置文件里面就行了,然后改cms的config/rewrite。php文件,实现伪静态解析指向。如果想直接写NGINX的话,需要把它的规则写在最前面,后面任然保持cms生产的代码,理论上这样可行 但我没有实验
  • 迅睿粉丝
    #2楼    迅睿粉丝
    2020-10-27 08:08:00
    Chrome 0
    location / { 
        if (-f $request_filename) {
               break;
        }
        rewrite ^([^\.]*)/show/(.*).html$ $1/index.php?s=article&c=show&id=$2 last;
        if ($request_filename ~* "\.(js|ico|gif|jpe?g|bmp|png|css)$") {
            break;
        }
        if (!-e $request_filename) {
            rewrite . /index.php last;
        }
    }
    这样吧
  • 迅睿粉丝
    #3楼    迅睿粉丝
    2020-10-27 08:22:27
    Chrome 0
    回复迅睿框架创始人 我如果仅在nignx中加入伪静态规则而不在config/rewrite.php文件中添加规则的话就会404。如果在config/rewrite.php添加规则的话,那么nginx添加的所有规则都无效,cms最终还是按照config/rewrite.php中的规则执行解析。例如:我在nginx添加一条指向文章模块内容的规则
    rewrite ^(.*)\/article\/([0-9]+).html$ $1/index.php?s=article&c=show&id=$2 last;    //指向文章模块
    理论上可以正常访问,但是会出现404,必须要在config/rewrite.php添加规则
    "article\/([0-9]+).html(.*)" => 'index.php?s=video&c=show&id=$1',    //指向视频模块
    最终程序是指向到了视频模块,导致nignx的规则无效
  • 迅睿粉丝
    #4楼    迅睿粉丝
    2020-10-27 08:25:13
    Chrome 0
    迅睿和poscms必须写在rewrite.php里面,不能写Nginx里面
  • 迅睿粉丝
    #5楼    迅睿粉丝
    2020-10-27 08:26:26
    Chrome 0
    司马老贼 poscms可以写在Nginx,迅睿不行
  • 迅睿粉丝
    #6楼    迅睿粉丝
    2020-10-27 08:29:50
    Chrome 0
    二楼代码伪静态可以,但是必须配置一些xunruicms,新建config/router.php,内容如下

    满意答案
  • 迅睿粉丝
    #7楼    迅睿粉丝
    2020-10-27 08:50:28
    Chrome 0
    专家出马应该可行
  • 迅睿粉丝
    #8楼    迅睿粉丝
    2020-10-28 10:10:39
    Chrome 0
    @二开/定制/使用解答专家:方案可行,然后可以根据参数做下判断,不然页面就没有404了,哈哈