$fastcgi_script_name set incorrectly with alias directive

Dick Middleton dick at fouter.net
Sun Aug 28 19:57:13 UTC 2011


Hi,

	I having trouble getting alias directive to work as I would expect.  One
thing I find is that the location part of the request is not being dropped in
the $fastcgi_script_name.

Here's my location block

       location /mydnsadmin {
          alias /var/www/lingbrae.ssl/usr;
          index mydns.php;
          include includes/php-alt.inc;
       }

I initially set the SCRIPT_FILENAME to $request_filename which is computed
correctly but later I reset it to $document_root$fastcgi_script_name
but is incorrect.

Here's the debug:
...
 *840 http script copy: "SCRIPT_FILENAME"
 *840 http script var: "/var/www/lingbrae.ssl/usr/mydns.php" <--- this is
$request_filename
 *840 fastcgi param: "SCRIPT_FILENAME: /var/www/lingbrae.ssl/usr/mydns.php"
<--correct
 *840 http script copy: "SCRIPT_NAME"
 *840 http script var: "/mydnsadmin/mydns.php"
 *840 fastcgi param: "SCRIPT_NAME: /mydnsadmin/mydns.php"
 *840 http script copy: "REQUEST_URI"
 *840 http script var: "/mydnsadmin/"
 *840 fastcgi param: "REQUEST_URI: /mydnsadmin/"
 *840 http script copy: "DOCUMENT_URI"
 *840 http script var: "/mydnsadmin/mydns.php"
 *840 fastcgi param: "DOCUMENT_URI: /mydnsadmin/mydns.php"
 *840 http script copy: "DOCUMENT_ROOT"
 *840 http script var: "/var/www/lingbrae.ssl/usr"
 *840 fastcgi param: "DOCUMENT_ROOT: /var/www/lingbrae.ssl/usr"
....
 *840 fastcgi param: "REDIRECT_STATUS: 200"
 *840 http script copy: "SCRIPT_FILENAME"
 *840 http script var: "/var/www/lingbrae.ssl/usr"  <-- This is $document_root
 *840 http script var: "/mydnsadmin/mydns.php" <--- this is
$fastcgi_script_name  (notice location is not stripped)
 *840 fastcgi param: "SCRIPT_FILENAME:
/var/www/lingbrae.ssl/usr/mydnsadmin/mydns.php"  <--- incorrect


Am I supposed to set the fastcgi params differently if I use the alias
directive or is this a problem with alias.

Dick



More information about the nginx mailing list