title: Setup example.com/subdirectory/ in Nginx
body: <p>Is there any possibility to setup Nginx for this: I want <code>www.example.com/subdirectory/</code> and that <code>/subdirectory/</code> take files from <code>/var/www/site/web/subdirectory</code></p>
  
  <p>My site is working, I just want to setup that <code>/subdirectory/</code> route.</p>
  
  <p>Is that somehow possible?</p>
  
  <p>My Nginx configuration is:</p>
  
  <pre><code>server {
      server_name server;
      root /var/www/site/web;
  
      location / {
          # try to serve file directly, fallback to app.php
          try_files $uri /app.php$is_args$args;
      }
      # DEV
      # This rule should only be placed on your development environment
      # In production, don't include this and don't deploy app_dev.php or config.php
      location ~ ^/(app_dev|config)\.php(/|$) {
          fastcgi_pass unix:/var/run/php5-fpm.sock;
          fastcgi_split_path_info ^(.+\.php)(/.*)$;
          include fastcgi_params;
          # When you are using symlinks to link the document root to the
          # current version of your application, you should pass the real
          # application path instead of the path to the symlink to PHP
          # FPM.
          # Otherwise, PHP's OPcache may not properly detect changes to
          # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
          # for more information).
          fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
          fastcgi_param DOCUMENT_ROOT $realpath_root;
      }
  
      # PROD
      location ~ ^/app\.php(/|$) {
          fastcgi_pass unix:/var/run/php5-fpm.sock;
          fastcgi_split_path_info ^(.+\.php)(/.*)$;
          include fastcgi_params;
          # When you are using symlinks to link the document root to the
          # current version of your application, you should pass the real
          # application path instead of the path to the symlink to PHP
          # FPM.
          # Otherwise, PHP's OPcache may not properly detect changes to
          # your PHP files (see https://github.com/zendtech/ZendOptimizerPlus/issues/126
          # for more information).
          fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
          fastcgi_param DOCUMENT_ROOT $realpath_root;
          # Prevents URIs that include the front controller. This will 404:
          # http://domain.tld/app.php/some-path
          # Remove the internal directive to allow URIs like this
          internal;
      }
  
     location /subdirectory {
      alias /var/www/site/web/subdir/;
  }
  
      # return 404 for all other php files not matching the front controller
      # this prevents access to other php files you don't want to be accessible.
      location ~ \.php$ {
        return 404;
      }
  
      error_log /var/log/nginx/sm_error.log;
      access_log /var/log/nginx/sm_access.log;
  </code></pre>
  
  <p>I have a problem with 404 error, I dont know why. I have <code>www-data</code> user on that subdirectory.</p>
  
  <pre><code>location /subdirectory {
      root /var/www/site/web/subdirectory;
      try_files $uri /administration.php$is_args$args;
          fastcgi_pass unix:/var/run/php5-fpm.sock;
          fastcgi_split_path_info ^(.+\.php)(/.*)$;
          include fastcgi_params;
          fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
          fastcgi_param DOCUMENT_ROOT $realpath_root;
  
  }
  </code></pre>