Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

$_SERVER["SCRIPT_URL"]: when is it reliably present?

In my local environment (PHP 5.4.24 on Apache 2.2.26) $_SERVER["SCRIPT_URL"] is present, but I read around that this variable is not always present, even though I couldn't find exactly when it is and when it isn't.

I'd like to know what is required for this variable to be reliably present.

like image 584
clami219 Avatar asked Jun 26 '14 11:06

clami219


2 Answers

It's only available when you have mod_rewrite enabled:

http://httpd.apache.org/docs/2.0/rewrite/rewrite_intro.html#EnvVar

like image 160
Wolfgang Stengel Avatar answered Oct 18 '22 06:10

Wolfgang Stengel


This variable strongly depends on the server's configuration.

When using nginx with php5-fpm (fcgi) for example, you'd pass the variable as fpm_parameter:

fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;

There is a similiar configuration for scgi.

There are 3 types of global variables in $_SERVER, some are taken from the client's request header and are not reliable, some are set by PHP/Webserver (for example REMOTE_ADDR) and are very reliable, and some depend on your configuration which can be reliable depending on that configuration.

like image 37
Daniel W. Avatar answered Oct 18 '22 06:10

Daniel W.