# $fastcgi\_script\_name set incorrectly with alias directive

**URL:** <https://www.ruby-forum.com/t/fastcgi-script-name-set-incorrectly-with-alias-directive/211189>\
**Category:** NGINX\
**Created:** [August 28, 2011, 9:58pm UTC](https://www.ruby-forum.com/t/fastcgi-script-name-set-incorrectly-with-alias-directive/211189 "2011-08-28T21:58:29Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![luislavena](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/l/0ea827/32.png) [@luislavena](https://www.ruby-forum.com/u/luislavena)\
**Post date:** [August 28, 2011, 9:58pm UTC](https://www.ruby-forum.com/t/fastcgi-script-name-set-incorrectly-with-alias-directive/211189/1 "2011-08-28T21:58:29Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![dmonahan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c2a13f/32.png) [@dmonahan](https://www.ruby-forum.com/u/dmonahan)\
**Post date:** [August 28, 2011, 11:06pm UTC](https://www.ruby-forum.com/t/fastcgi-script-name-set-incorrectly-with-alias-directive/211189/2 "2011-08-28T23:06:28Z")

</div>

Alias does not change document root so that variable is going to be  
whatever the document root is. Not what the alias is

---

<div class="post-metadata">

**Author:** ![dmonahan](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/d/c2a13f/32.png) [@dmonahan](https://www.ruby-forum.com/u/dmonahan)\
**Post date:** [August 28, 2011, 11:47pm UTC](https://www.ruby-forum.com/t/fastcgi-script-name-set-incorrectly-with-alias-directive/211189/3 "2011-08-28T23:47:13Z")

</div>

On 08/28/11 21:47, Michael S. wrote:

> Alias does not change document root so that variable is going to be whatever the  
> document root is. Not what the alias is

Hmm, document\_root is set, as I would expect, to alias value. It’s the  
script  
name (document\_uri) which, to me, is wrong.

What’s really puzzling is that request\_filename is ‘correct’. That’s a  
sentiment I expressed in May when:

On 05/25/11 13:48, Igor S. wrote:

> $request\_filename is “$document\_root$uri”.

Apparently not always 🙂

Dick
