PHP_SELF vs PATH_INFO vs SCRIPT_NAME vs REQUEST_URI
I am building a PHP application in CodeIgniter. CodeIgniter sends all requests to the main controller: index.php
. However, I don't like to see index.php
in the URI. For example, http://www.example.com/faq/whatever
will route to http://www.example.com/index.php/faq/whatever
. I need a reliable way for a script to know what it's address is, so it will know what to do with the navigation. I've used mod_rewrite
, as per CodeIgniter documentation.
The rule is as follows:
RewriteEngine on
RewriteCond $1 !^(images|inc|favicon.ico|index.php|robots.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Normally, I would just check php_self
, but in this case it's always index.php
. I can get it from REQUEST_URI
, PATH_INFO
, etc., but I'm trying to decide which will be most reliable. Does anyone know (or know where to find) the real difference between PHP_SELF
, PATH_INFO
, SCRIPT_NAME
, and REQUEST_URI
? Thanks for your help!
Note: I've had to add spaces, as SO sees the underscore, and makes it italic for some reason.
Updated: Fixed the spaces.