如何在 nginx 中设置子文件夹

Posted

技术标签:

【中文标题】如何在 nginx 中设置子文件夹【英文标题】:How to set subfolder in nginx 【发布时间】:2021-11-26 14:17:35 【问题描述】:

我试图将我的 html 文件夹中的 index.php 文件设置为 localhost:5555 并将我的 html/highlighter 文件夹中的第二个 index.php 文件设置为 localhost:5555/highlighter ,首先一切正常,但第二个不是,当我去localhost:5555/highlighter 打印 404 Not Found 你能帮帮我吗? 我的文件夹树:

nginx
│ 
├── html
│   ├── 50x.html
│   ├── highlight
│   │   ├── functions.php
│   │   ├── icon.png
│   │   ├── index.css
│   │   ├── index.php
│   └── index.php
├── nginx.exe

nginx.conf

worker_processes  1;

events 
    worker_connections  1024;


http 
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;

    server 
        listen       5555;
        server_name  localhost;

        location / 
            root   html;
            index  index.php;
        
        
        location /highlighter 
            root html/highlight;
            index index.php;
        
        
        location ~ \.php$ 
            fastcgi_pass   127.0.0.1:9123;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        

        error_page   500 502 503 504  /50x.html;
        location = /50x.html 
            root   html;
        
    


更新 我的错误是在位置块中添加了 2 个根,如果您有同样的错误,请尝试像这样从位置块中移动根

worker_processes  1;

events 
    worker_connections  1024;



http 
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    server 
        listen       5555;
        server_name  localhost;

        root   "D:\\Miscellaneous\\nginxSites";
        
        location / 
            index  index.php;
        
        
        location /highlighter 
            index  index.php;
        
        
        location ~ \.php$ 
            fastcgi_pass   127.0.0.1:9123;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
        

        error_page   500 502 503 504  /50x.html;
        location = /50x.html 
            root   html;
        
    

【问题讨论】:

【参考方案1】:

您可以尝试以下方法:

location /highlighter 
            alias /var/www/html/highlighter/;
                index index.php index.html;
                #try_files $uri $uri/ =404;
                try_files $uri $uri/ /highlighter/index.php;
        

【讨论】:

谢谢你的回答,我试过了,现在我得到No input file specified.而不是404错误@ 我正在使用 Windows 和我位于 C 驱动器根目录的 nginx 文件夹,如果它可以帮助你

以上是关于如何在 nginx 中设置子文件夹的主要内容,如果未能解决你的问题,请参考以下文章

Objective C:如何在当前可见帧中设置子视图显示? (UITableView)

如何使用 CSS 模块在 React 中设置子组件的样式

如何从父组件中设置子组件的样式?

如何在 Scikit-Learn 的随机森林分类器中设置子样本大小?特别是对于不平衡的数据

在 matplotlib 中设置子图的大小

可以在关键帧中设置子元素的属性吗