Home  >  Article  >  Backend Development  >  How Can I Configure Nginx to Serve Subfolders Differently?

How Can I Configure Nginx to Serve Subfolders Differently?

DDD
DDDOriginal
2024-11-22 10:21:10173browse

How Can I Configure Nginx to Serve Subfolders Differently?

Nginx Location Configuration for Subfolders

In Nginx configuration, managing access to subdirectories is crucial for organizing website content effectively. Let's consider a scenario where you have two subfolders, "/static" and "/manage," within a web root directory.

Problem:

You need to configure Nginx to provide access to these subfolders as follows:

  • "/static" folder accessible at the root URI (e.g., http://example.org/)
  • "/manage" folder accessible at "/manage" (e.g., http://example.org/manage)

Solution:

To address this issue, you need to utilize the alias directive for the "/manage" subfolder:

server {
    # ... (unchanged configuration)
    
    location ^~ /manage {
        alias /var/www/mysite/manage/public;
        index index.php;
        
        if (!-e $request_filename) { rewrite ^ /manage/index.php last; }
        
        location ~ \.php$ {
            if (!-f $request_filename) { return 404; }
            fastcgi_pass 127.0.0.1:9000;
            
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $request_filename;
            fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        }
    }
}

Alternative Solution Using Root:

In some cases, you may consider using the root directive instead of alias. However, it requires a nested location block and is generally less efficient for subfolder handling.

Additional Notes:

  • The ^~ modifier ensures that the prefix location takes precedence over regular expression locations.
  • The try_files and alias directives cannot be used together due to a known bug.
  • The if directive should be handled with caution to avoid unexpected behaviors.

The above is the detailed content of How Can I Configure Nginx to Serve Subfolders Differently?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn