加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 运营中心 > Nginx > 正文

Nginx将目录作为别名提供服务

发布时间:2020-12-13 21:32:01 所属栏目:Nginx 来源:网络整理
导读:我试图使用ResourceSpace作为Nginx的别名.页面脚本加载良好,但不加载静态文件.访问子目录会产生未定义索引的错误 eximmanger加载所有脚本和静态文件,而资源空间无法加载静态文件,只加载脚本 这是我的配置 server { listen 80; server_name myserver.com www.

我试图使用ResourceSpace作为Nginx的别名.页面脚本加载良好,但不加载静态文件.访问子目录会产生未定义索引的错误

eximmanger加载所有脚本和静态文件,而资源空间无法加载静态文件,只加载脚本

这是我的配置

server {
    listen 80;
    server_name myserver.com www.myserver.com;
    server_name_in_redirect off;

    access_log /var/log/nginx/myserver.access_log main;
    error_log /var/log/nginx/myserver.error_log info;

    location /resourcespace { 
        alias /var/www/html/ResourceSpace/;

     }


    location /eximmanager { 
        alias /var/www/html/exim4u/exim4u/;

     }

    location /100/ { 
           rewrite ^ http://100.myserver permanent;

     }




   location ~ ^/eximmanger/(.+.*)${
      alias /var/www/html/exim4u/exim4u/$1;
      fastcgi_pass unix:/tmp/php.socket;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME  $request_filename;

      # From fastcgi_params
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      /var/www/html/exim4u/exim4u; # <-- Changed
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;
fastcgi_param  REDIRECT_STATUS    200;
    }


   location ~ ^/resourcespace/(.+.*)${
      alias /var/www/html/ResourceSpace/$1;
      fastcgi_pass unix:/tmp/php.socket;
      fastcgi_index index.php;
      fastcgi_param SCRIPT_FILENAME  $request_filename;

      # From fastcgi_params
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      /var/www/html/ResourceSpace; # <-- Changed
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx/$nginx_version;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;
fastcgi_param  REDIRECT_STATUS    200;
    }


    root /var/www/html/myserver;
    index index.php;
    # Support Clean (aka Search Engine Friendly) URLs
    location / {
            try_files $uri $uri/ /index.php?q=$request_uri;
    }

    index index.php index.html index.htm default.html default.htm;
    # deny running scripts inside writable directories
    location ~* /(images|cache|media|logs|tmp)/.*.(php|pl|py|jsp|asp|sh|cgi)${
            return 403;
            error_page 403 /403_error.html;
    }



    location ~ .*.php${
        #include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/tmp/php.socket;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;


    }

    # caching of files 
    location ~* .(ico|pdf|flv)${
            expires 1y;
    }

    location ~* .(js|css|png|jpg|jpeg|gif|swf|xml|txt)${
            expires 14d;
最佳答案
我发现问题根本与nginx无关,而是与ResourceSpace $baseurl指令有关.在指令中,我混淆了$baseurl =’http://resourcespace.myserver.com’;和$baseurl =’http://myserver.com/resourcespace’; .如果你有类似的问题,请注意这一点.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读