Normalized parameters
The normalized
request attribute provide access to server
parameters, for instance, if the TYPO3 installation is behind a reverse proxy.
It is available in frontend and backend context.
Attention
The normalized parameters substitute
\TYPO3\
. See the
migration guide below.
One can retrieve the normalized parameters like this:
/** @var \TYPO3\CMS\Core\Http\NormalizedParams $normalizedParams */
$normalizedParams = $request->getAttribute('normalizedParams');
$requestPort = $normalizedParams->getRequestPort();
API
- class NormalizedParams
-
- Fully qualified name
-
\TYPO3\
CMS\ Core\ Http\ Normalized Params
This class provides normalized server parameters in HTTP request context.
It normalizes reverse proxy scenarios and various other web server specific differences of the native PSR-7 request object parameters (->getServerParams() / $GLOBALS['_SERVER']).
An instance of this class is available as PSR-7 ServerRequestInterface attribute:
$normalizedParams = $request->getAttribute('normalizedParams')
Copied!This class substitutes the old GeneralUtility::getIndpEnv() method.
- getDocumentRoot ( )
-
- Return description
-
Absolute path to web document root, eg. /var/www/typo3
- Returns
-
string
- getHttpAcceptEncoding ( )
-
Will be deprecated later, use $request->getServerParams()['HTTP_ACCEPT_ENCODING'] instead
- Return description
-
HTTP_ACCEPT_ENCODING, eg. 'gzip, deflate'
- Returns
-
string
- getHttpAcceptLanguage ( )
-
Will be deprecated later, use $request->getServerParams()['HTTP_ACCEPT_LANGUAGE'] instead
- Return description
-
HTTP_ACCEPT_LANGUAGE, eg. 'de-DE,de;q=0.9,en-US;q=0.8,en;q=0.7'
- Returns
-
string
- getHttpReferer ( )
-
Will be deprecated later, use $request->getServerParams()['HTTP_REFERER'] instead
- Return description
-
HTTP_REFERER, eg. 'https://www.domain.com/typo3/index.php?id=42'
- Returns
-
string
- getHttpUserAgent ( )
-
Will be deprecated later, use $request->getServerParams()['HTTP_USER_AGENT'] instead
- Return description
-
HTTP_USER_AGENT identifier
- Returns
-
string
- getQueryString ( )
-
Will be deprecated later, use $request->getServerParams()['QUERY_STRING'] instead
- Return description
-
QUERY_STRING, eg 'id=42&foo=bar'
- Returns
-
string
- getPathInfo ( )
-
Will be deprecated later, use getScriptName() as reliable solution instead
- Return description
-
Script path part of URI, eg. 'typo3/index.php'
- Returns
-
string
- getRemoteHost ( )
-
Will be deprecated later, use $request->getServerParams()['REMOTE_HOST'] instead
- Return description
-
REMOTE_HOST if configured in web server, eg. 'www.clientDomain.com'
- Returns
-
string
- getRequestDir ( )
-
- Return description
-
REQUEST URI without script file name and query parts, eg. http://www.domain.com/typo3/
- Returns
-
string
- getRequestHost ( )
-
- Return description
-
Sanitized HTTP_HOST with protocol scheme://host[:port], eg. https://www.domain.com/
- Returns
-
string
- getRequestPort ( )
-
- Return description
-
Requested port if given, eg. 8080 - often not explicitly given, then 0
- Returns
-
int
- getRequestScript ( )
-
- Return description
-
REQUEST URI without query part, eg. http://www.domain.com/typo3/index.php
- Returns
-
string
- getRequestUri ( )
-
- Return description
-
Request Uri without domain and protocol, eg. /index.php?id=42
- Returns
-
string
- getRequestUrl ( )
-
- Return description
-
Full REQUEST_URI, eg. http://www.domain.com/typo3/foo/bar?id=42
- Returns
-
string
- getScriptFilename ( )
-
- Return description
-
Absolute entry script path on server, eg. /var/www/typo3/index.php
- Returns
-
string
- getSiteScript ( )
-
- Return description
-
Path part to entry script with parameters, without sub dir, eg 'typo3/index.php?id=42'
- Returns
-
string
- getSiteUrl ( )
-
- Return description
-
Website frontend url, eg. https://www.domain.com/some/sub/dir/
- Returns
-
string
Migrating from GeneralUtility::getIndpEnv()
The class \TYPO3\
is a one-to-one transition
of \TYPO3\
, the old
arguments can be substituted with these calls:
SCRIPT_
is nowNAME ->get
Script Name () SCRIPT_
is nowFILENAME ->get
Script Filename () REQUEST_
is nowURI ->get
Request Uri () TYPO3_
is nowREV_ PROXY ->is
Behind Reverse Proxy () REMOTE_
is nowADDR ->get
Remote Address () HTTP_
is nowHOST ->get
Http Host () TYPO3_
is nowDOCUMENT_ ROOT ->get
Document Root () TYPO3_
is nowHOST_ ONLY ->get
Request Host Only () TYPO3_
is nowPORT ->get
Request Port () TYPO3_
is nowREQUEST_ HOST ->get
Request Host () TYPO3_
is nowREQUEST_ URL ->get
Request Url () TYPO3_
is nowREQUEST_ SCRIPT ->get
Request Script () TYPO3_
is nowREQUEST_ DIR ->get
Request Dir () TYPO3_
is nowSITE_ URL ->get
Site Url () TYPO3_
is nowSITE_ PATH ->get
Site Path () TYPO3_
is nowSITE_ SCRIPT ->get
Site Script () TYPO3_
is nowSSL ->is
Https ()
Some further old get
arguments directly access $request->server
and do not apply any
normalization. These have been transferred to the new class, too, but will be deprecated later if the Core does not use
them anymore:
PATH_
is nowINFO ->get
, but better usePath Info () ->get
insteadScript Name () HTTP_
is nowREFERER ->get
, but better useHttp Referer () $request->get
insteadServer Params () ['HTTP_ REFERER'] HTTP_
is nowUSER_ AGENT ->get
, but better useHttp User Agent () $request->get
insteadServer Params () ['HTTP_ USER_ AGENT'] HTTP_
is nowACCEPT_ ENCODING ->get
, but better useHttp Accept Encoding () $request->get
insteadServer Params () ['HTTP_ ACCEPT_ ENCODING'] HTTP_
is nowACCEPT_ LANGUAGE ->get
, but better useHttp Accept Language () $request->get
insteadServer Params () ['HTTP_ ACCEPT_ LANGUAGE'] REMOTE_
is nowHOST ->get
, but better useRemote Host () $request->get
insteadServer Params () ['REMOTE_ HOST'] QUERY_
is nowSTRING ->get
, but better useQuery String () $request->get
insteadServer Params () ['QUERY_ STRING']