Я напечатал $_SERVER, и я узнал, что $ _SERVER['REDIRECT_URL']
vs $_SERVER['REQUEST_URI']
имеют одинаковые значения. Какая разница между двумя?
PHP: $_SERVER ['REDIRECT_URL'] против $_SERVER ['REQUEST_URI']
Ответ 1
REQUEST_URI - это запрошенный путь и запрос URI, используемые в строке HTTP-запроса. REDIRECT_URL создается Apache, когда происходит внутреннее перенаправление:
REDIRECT_
переменные среды создаются из переменных среды, существовавших до перенаправления. Они переименовываются с префиксомREDIRECT_
, т.е.HTTP_USER_AGENT
становитсяREDIRECT_HTTP_USER_AGENT
.
REDIRECT_URL
,REDIRECT_STATUS
иREDIRECT_QUERY_STRING
гарантированно будут установлены, а другие заголовки будут установлены только в том случае, если они существовали до условия ошибки.
Обратите внимание, что REDIRECT_URL содержит только путь URI.
Ответ 2
$_SERVER['REDIRECT_URL']
доступен только на некоторых серверах. Вместо этого используйте $_SERVER['REQUEST_URI']
.
Ответ 3
REQUEST_URI также изменяет специальные символы, такие как пробелы, на "%20" и т.д.