zoukankan      html  css  js  c++  java
  • [Nginx] location与rewrite配合处理项目的重写和路径问题

    某个项目中路由是通过$_SERVER['REQUEST_URI']来进行的匹配处理 , 并且隐藏了index.php

    前端路径是http://域名/static/css/xxx.css 而实际路径是位于 /绝对路径/template/static中

    在这样的两种情况下 , 不改代码的条件下使用nginx处理

    server {
            listen       80;
            server_name  xxxx;
            root   /var/www/html/admin;
            location / {
                index  index.php;
            }
            location /static {
                    root /var/www/html/admin/template;
            }
    
            if (!-e $request_filename) {
                    rewrite ^/((?!static).*)$ /index.php/$1 last;
                    break;
            }
            location ~ .php {
    
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                #fastcgi_connect_timeout    10s;
                fastcgi_read_timeout        60s;
                fastcgi_split_path_info  ^((?U).+.php)(/?.+)$;
                fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
                fastcgi_param  PATH_INFO  $fastcgi_path_info;
                fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
                include        fastcgi_params;
            }
    }

    最关键的是location块匹配到static后 ,设置了新的root

    rewrite正则 , 除去了static , 因为单纯的靠!-e $request_filename排除不了 ,因为它路径是404 , 还是会进判断 ,只能靠正则了

    if (!-e $request_filename) {
    rewrite ^/((?!static).*)$ /index.php/$1 last;
    break;
    }

  • 相关阅读:
    java学习(4):第一个Java程序(Hello world)
    java学习(3):字符集和字符编码的区别
    java学习(2):二进制、十进制、原码、反码、补码
    Java学习(1):JRE和JDK
    缓存
    关联表查询
    男0女1
    嵌套查询
    定义别名
    增删改查
  • 原文地址:https://www.cnblogs.com/taoshihan/p/12525022.html
Copyright © 2011-2022 走看看