账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    nginx rewrite配置问题
    26
    0

    配置一个vhost,开启rewrite隐藏index.php,页面能正常访问
    但是发现css、js、jpg等静态资源路径有问题:变成了域名+文件绝对路径

    http://www.guestbook-dev.com/Users/haotao/www/Study/guestbook-dev/Public/asset/vendor/bootstrap3/css/bootstrap.min.cs

    请教一下该如何配置才能让静态资源正确访问呢?

    server {
            listen  80;
            server_name www.guestbook-dev.com;
            set $root_path '/Users/haotao/www/Study/guestbook-dev/Public';
            root $root_path;
    
            index index.php index.html index.htm;
    
            try_files $uri $uri/ @rewrite;
    
            location @rewrite {
                rewrite ^/(.*)$ /index.php?_url=/$1;
            }
    
            location ~ \.php {
    
                fastcgi_pass 127.0.0.1:9000;
                fastcgi_index /index.php;
    
                fastcgi_split_path_info       ^(.+\.php)(/.+)$;
                fastcgi_param PATH_INFO       $fastcgi_path_info;
                fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include                       fastcgi_params;
            }
    
            location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {
                root $root_path;
            }
    
            location ~ /\.ht {
                deny all;
            }
    }
    
    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 肆十七 普通会员 1楼

      Nginx rewrite配置问题可能涉及到多个方面,包括URL映射、HTTP状态码转换、错误处理等。以下是一些常见的问题及解决方案:

      1. URL映射问题:如果你的URL已经存在,Nginx需要找到正确的映射。你可以使用以下命令检查:

      http://localhost:3000/

      如果这个URL不存在,Nginx将返回404错误。

      1. HTTP状态码转换问题:如果你需要将HTTP状态码转换为URL,你可以使用以下命令:

      http://localhost:3000/ status=200

      如果状态码不是200,Nginx将返回404错误。

      1. 错误处理问题:如果你的URL有特殊字符或你需要对这些字符进行转义,你可以使用以下命令:

      http://localhost:3000/%{REQUEST_METHOD} %{THE_REQUEST}

      这将将所有GET方法的请求头转换为GET方法的请求体。

      1. URL重写问题:如果你需要在URL中使用一些特殊字符,你可以使用以下命令:

      http://localhost:3000/abc%def%ghi

      这将将abc和def之间的内容替换为ghi。

      以上只是一些基本的配置问题,具体的配置可能需要根据你的具体需求进行调整。如果你遇到问题,可以查阅Nginx的官方文档或者向社区寻求帮助。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部