‪TYPO3CMS  10.4
NormalizedParams.php
Go to the documentation of this file.
1 <?php
2 
3 declare(strict_types=1);
4 
5 /*
6  * This file is part of the TYPO3 CMS project.
7  *
8  * It is free software; you can redistribute it and/or modify it under
9  * the terms of the GNU General Public License, either version 2
10  * of the License, or any later version.
11  *
12  * For the full copyright and license information, please read the
13  * LICENSE.txt file that was distributed with this source code.
14  *
15  * The TYPO3 project - inspiring people to share!
16  */
17 
18 namespace ‪TYPO3\CMS\Core\Http;
19 
20 use Psr\Http\Message\ServerRequestInterface;
23 
35 {
47  protected ‪$httpHost = '';
48 
52  protected ‪$isHttps = false;
53 
63  protected ‪$requestHost = '';
64 
73  protected ‪$requestHostOnly = '';
74 
80  protected ‪$requestPort = 0;
81 
91  protected ‪$scriptName = '';
92 
103  protected ‪$requestUri = '';
104 
114  protected ‪$requestUrl = '';
115 
125  protected ‪$requestScript = '';
126 
136  protected ‪$requestDir = '';
137 
143  protected ‪$isBehindReverseProxy = false;
144 
150  protected ‪$remoteAddress = '';
151 
159  protected ‪$scriptFilename = '';
160 
168  protected ‪$documentRoot = '';
169 
182  protected ‪$siteUrl = '';
183 
192  protected ‪$sitePath = '';
193 
202  protected ‪$siteScript = '';
203 
215  protected ‪$pathInfo = '';
216 
227  protected ‪$httpReferer = '';
228 
237  protected ‪$httpUserAgent = '';
238 
247  protected ‪$httpAcceptEncoding = '';
248 
257  protected ‪$httpAcceptLanguage = '';
258 
267  protected ‪$remoteHost = '';
268 
279  protected ‪$queryString = '';
280 
296  public function ‪__construct(array $serverParams, array $configuration, string $pathThisScript, string $pathSite)
297  {
299  $serverParams,
300  $configuration
301  );
302  ‪$httpHost = $this->httpHost = ‪self::determineHttpHost($serverParams, $configuration, ‪$isBehindReverseProxy);
303  ‪$isHttps = $this->‪isHttps = ‪self::determineHttps($serverParams, $configuration);
304  ‪$requestHost = $this->requestHost = (‪$isHttps ? 'https://' : 'http://') . ‪$httpHost;
307  $scriptNameOnFileSystem = ‪self::determineScriptName(
308  $serverParams,
309  $configuration,
310  ‪$isHttps,
312  );
313  ‪$scriptName = $this->scriptName = ‪self::encodeFileSystemPathComponentForUrlPath($scriptNameOnFileSystem);
314  ‪$requestUri = $this->requestUri = ‪self::determineRequestUri(
315  $serverParams,
316  $configuration,
320  );
321  ‪$requestUrl = $this->requestUrl = ‪$requestHost . ‪$requestUri;
322  $this->requestScript = ‪$requestHost . ‪$scriptName;
323  ‪$requestDir = $this->requestDir = ‪$requestHost . GeneralUtility::dirname(‪$scriptName) . '/';
324  $this->remoteAddress = ‪self::determineRemoteAddress($serverParams, $configuration, ‪$isBehindReverseProxy);
325  ‪$scriptFilename = $this->scriptFilename = $pathThisScript;
326  $this->documentRoot = ‪self::determineDocumentRoot($scriptNameOnFileSystem, ‪$scriptFilename);
327  ‪$siteUrl = $this->siteUrl = ‪self::determineSiteUrl(‪$requestDir, $pathThisScript, $pathSite . '/');
330 
331  // @deprecated Below variables can be fully deprecated as soon as core does not use them anymore
332  $this->pathInfo = $serverParams['PATH_INFO'] ?? '';
333  $this->httpReferer = $serverParams['HTTP_REFERER'] ?? '';
334  $this->httpUserAgent = $serverParams['HTTP_USER_AGENT'] ?? '';
335  $this->httpAcceptEncoding = $serverParams['HTTP_ACCEPT_ENCODING'] ?? '';
336  $this->httpAcceptLanguage = $serverParams['HTTP_ACCEPT_LANGUAGE'] ?? '';
337  $this->remoteHost = $serverParams['REMOTE_HOST'] ?? '';
338  $this->queryString = $serverParams['QUERY_STRING'] ?? '';
339  }
340 
341  private static function ‪encodeFileSystemPathComponentForUrlPath(string $path): string
342  {
343  return implode('/', array_map('rawurlencode', explode('/', $path)));
344  }
345 
349  public function ‪getHttpHost(): string
350  {
351  return ‪$this->httpHost;
352  }
353 
357  public function ‪isHttps(): bool
358  {
359  return ‪$this->isHttps;
360  }
361 
365  public function ‪getRequestHost(): string
366  {
367  return ‪$this->requestHost;
368  }
369 
373  public function ‪getRequestHostOnly(): string
374  {
376  }
377 
381  public function ‪getRequestPort(): int
382  {
383  return ‪$this->requestPort;
384  }
385 
389  public function ‪getScriptName(): string
390  {
391  return ‪$this->scriptName;
392  }
393 
397  public function ‪getRequestUri(): string
398  {
399  return ‪$this->requestUri;
400  }
401 
405  public function ‪getRequestUrl(): string
406  {
407  return ‪$this->requestUrl;
408  }
409 
413  public function ‪getRequestScript(): string
414  {
416  }
417 
421  public function ‪getRequestDir(): string
422  {
423  return ‪$this->requestDir;
424  }
425 
429  public function ‪isBehindReverseProxy(): bool
430  {
432  }
433 
437  public function ‪getRemoteAddress(): string
438  {
440  }
441 
445  public function ‪getScriptFilename(): string
446  {
448  }
449 
453  public function ‪getDocumentRoot(): string
454  {
455  return ‪$this->documentRoot;
456  }
457 
461  public function ‪getSiteUrl(): string
462  {
464  }
465 
469  public function ‪getSitePath(): string
470  {
471  return ‪$this->sitePath;
472  }
473 
477  public function ‪getSiteScript(): string
478  {
479  return ‪$this->siteScript;
480  }
481 
487  public function ‪getPathInfo(): string
488  {
489  return ‪$this->pathInfo;
490  }
491 
497  public function ‪getHttpReferer(): string
498  {
499  return ‪$this->httpReferer;
500  }
501 
507  public function ‪getHttpUserAgent(): string
508  {
510  }
511 
517  public function ‪getHttpAcceptEncoding(): string
518  {
520  }
521 
527  public function ‪getHttpAcceptLanguage(): string
528  {
530  }
531 
537  public function ‪getRemoteHost(): string
538  {
539  return ‪$this->remoteHost;
540  }
541 
547  public function ‪getQueryString(): string
548  {
549  return ‪$this->queryString;
550  }
551 
561  protected static function ‪determineHttpHost(
562  array $serverParams,
563  array $configuration,
565  ): string {
566  ‪$httpHost = $serverParams['HTTP_HOST'] ?? '';
568  // If the request comes from a configured proxy which has set HTTP_X_FORWARDED_HOST, then
569  // evaluate reverseProxyHeaderMultiValue and
570  $xForwardedHostArray = ‪GeneralUtility::trimExplode(',', $serverParams['HTTP_X_FORWARDED_HOST'] ?? '', true);
571  $xForwardedHost = '';
572  // Choose which host in list to use
573  if (!empty($xForwardedHostArray)) {
574  $configuredReverseProxyHeaderMultiValue = trim($configuration['reverseProxyHeaderMultiValue'] ?? '');
575  // Default if reverseProxyHeaderMultiValue is not set or set to 'none', instead of 'first' / 'last' is to
576  // ignore $serverParams['HTTP_X_FORWARDED_HOST']
577  // @todo: Maybe this default is stupid: Both SYS/reverseProxyIP hand SYS/reverseProxyHeaderMultiValue have to
578  // @todo: be configured for a working setup. It would be easier to only configure SYS/reverseProxyIP and fall
579  // @todo: back to "first" if SYS/reverseProxyHeaderMultiValue is not set.
580  if ($configuredReverseProxyHeaderMultiValue === 'last') {
581  $xForwardedHost = array_pop($xForwardedHostArray);
582  } elseif ($configuredReverseProxyHeaderMultiValue === 'first') {
583  $xForwardedHost = array_shift($xForwardedHostArray);
584  }
585  }
586  if ($xForwardedHost) {
587  ‪$httpHost = $xForwardedHost;
588  }
589  }
590  if (!GeneralUtility::isAllowedHostHeaderValue(‪$httpHost)) {
591  throw new \UnexpectedValueException(
592  'The current host header value does not match the configured trusted hosts pattern!'
593  . ' Check the pattern defined in $GLOBALS[\'TYPO3_CONF_VARS\'][\'SYS\'][\'trustedHostsPattern\']'
594  . ' and adapt it, if you want to allow the current host header \'' . ‪$httpHost . '\' for your installation.',
595  1396795886
596  );
597  }
598  return $httpHost;
599  }
600 
609  protected static function determineHttps(array $serverParams, array $configuration): bool
610  {
611  $isHttps = false;
612  $configuredProxySSL = trim($configuration['reverseProxySSL'] ?? '');
613  if ($configuredProxySSL === '*') {
614  $configuredProxySSL = trim($configuration['reverseProxyIP'] ?? '');
615  }
616  $httpsParam = (string)($serverParams['HTTPS'] ?? '');
617  if (GeneralUtility::cmpIP(trim($serverParams['REMOTE_ADDR'] ?? ''), $configuredProxySSL)
618  || ($serverParams['SSL_SESSION_ID'] ?? '')
619  // https://secure.php.net/manual/en/reserved.variables.server.php
620  // "Set to a non-empty value if the script was queried through the HTTPS protocol."
621  || ($httpsParam !== '' && $httpsParam !== 'off' && $httpsParam !== '0')
622  ) {
623  $isHttps = true;
624  }
625  return $isHttps;
626  }
627 
637  protected static function determineScriptName(
638  array $serverParams,
639  array $configuration,
640  bool $isHttps,
641  bool $isBehindReverseProxy
642  ): string {
643  $scriptName = $serverParams['SCRIPT_NAME'] ?? '';
644  if ($isBehindReverseProxy) {
645  // Add a prefix if TYPO3 is behind a proxy: ext-domain.com => int-server.com/prefix
646  if ($isHttps && !empty($configuration['reverseProxyPrefixSSL'])) {
647  $scriptName = $configuration['reverseProxyPrefixSSL'] . $scriptName;
648  } elseif (!empty($configuration['reverseProxyPrefix'])) {
649  $scriptName = $configuration['reverseProxyPrefix'] . $scriptName;
650  }
651  }
652  return $scriptName;
653  }
654 
666  protected static function determineRequestUri(
667  array $serverParams,
668  array $configuration,
669  bool $isHttps,
670  string $scriptName,
671  bool $isBehindReverseProxy
672  ): string {
673  $proxyPrefixApplied = false;
674  if (!empty($configuration['requestURIvar'])) {
675  // This is for URL rewriter that store the original URI in a server
676  // variable (e.g. ISAPI Rewriter for IIS: HTTP_X_REWRITE_URL), a config then looks like:
677  // requestURIvar = '_SERVER|HTTP_X_REWRITE_URL' which will access $GLOBALS['_SERVER']['HTTP_X_REWRITE_URL']
678  [$firstLevel, $secondLevel] = GeneralUtility::trimExplode('|', $configuration['requestURIvar'], true);
679  $requestUri = $GLOBALS[$firstLevel][$secondLevel];
680  } elseif (empty($serverParams['REQUEST_URI'])) {
681  // This is for ISS/CGI which does not have the REQUEST_URI available.
682  $queryString = !empty($serverParams['QUERY_STRING']) ? '?' . $serverParams['QUERY_STRING'] : '';
683  // script name already had the proxy prefix handling, we must not add it a second time
684  $proxyPrefixApplied = true;
685  $requestUri = '/' . ltrim($scriptName, '/') . $queryString;
686  } else {
687  $requestUri = '/' . ltrim($serverParams['REQUEST_URI'], '/');
688  }
689  if (!$proxyPrefixApplied && $isBehindReverseProxy) {
690  // Add a prefix if TYPO3 is behind a proxy: ext-domain.com => int-server.com/prefix
691  if ($isHttps && !empty($configuration['reverseProxyPrefixSSL'])) {
692  $requestUri = $configuration['reverseProxyPrefixSSL'] . $requestUri;
693  } elseif (!empty($configuration['reverseProxyPrefix'])) {
694  $requestUri = $configuration['reverseProxyPrefix'] . $requestUri;
695  }
696  }
697  return $requestUri;
698  }
699 
708  protected static function determineRemoteAddress(
709  array $serverParams,
710  array $configuration,
711  bool $isBehindReverseProxy
712  ): string {
713  $remoteAddress = trim($serverParams['REMOTE_ADDR'] ?? '');
714  if ($isBehindReverseProxy) {
715  $ip = GeneralUtility::trimExplode(',', $serverParams['HTTP_X_FORWARDED_FOR'] ?? '', true);
716  // Choose which IP in list to use
717  $configuredReverseProxyHeaderMultiValue = trim($configuration['reverseProxyHeaderMultiValue'] ?? '');
718  if (!empty($ip) && $configuredReverseProxyHeaderMultiValue === 'last') {
719  $ip = (string)array_pop($ip);
720  } elseif (!empty($ip) && $configuredReverseProxyHeaderMultiValue === 'first') {
721  $ip = (string)array_shift($ip);
722  } else {
723  $ip = '';
724  }
725  if (GeneralUtility::validIP($ip)) {
726  $remoteAddress = $ip;
727  }
728  }
729  return $remoteAddress;
730  }
731 
739  protected static function determineIsBehindReverseProxy($serverParams, $configuration): bool
740  {
741  return GeneralUtility::cmpIP(
742  trim($serverParams['REMOTE_ADDR'] ?? ''),
743  trim($configuration['reverseProxyIP'] ?? '')
744  );
745  }
746 
753  protected static function determineRequestHostOnly(string $httpHost): string
754  {
755  $httpHostBracketPosition = strpos($httpHost, ']');
756  $httpHostParts = explode(':', $httpHost);
757  return $httpHostBracketPosition !== false ? substr(
758  $httpHost,
759  0,
760  $httpHostBracketPosition + 1
761  ) : array_shift($httpHostParts);
762  }
763 
771  protected static function determineRequestPort(string $httpHost, string $httpHostOnly): int
772  {
773  return strlen($httpHost) > strlen($httpHostOnly) ? (int)substr($httpHost, strlen($httpHostOnly) + 1) : 0;
774  }
775 
783  protected static function determineDocumentRoot(string $scriptNameOnFileSystem, string $scriptFilename): string
784  {
785  // Get the web root (it is not the root of the TYPO3 installation)
786  // Some CGI-versions (LA13CGI) and mod-rewrite rules on MODULE versions will deliver a 'wrong'
787  // DOCUMENT_ROOT (according to our description). Further various aliases/mod_rewrite rules can
788  // disturb this as well. Therefore the DOCUMENT_ROOT is always calculated as the SCRIPT_FILENAME
789  // minus the end part shared with SCRIPT_NAME.
790  $webDocRoot = '';
791  $scriptNameArray = explode('/', strrev($scriptNameOnFileSystem));
792  $scriptFilenameArray = explode('/', strrev($scriptFilename));
793  $path = [];
794  foreach ($scriptNameArray as $segmentNumber => $segment) {
795  if ((string)$scriptFilenameArray[$segmentNumber] === (string)$segment) {
796  $path[] = $segment;
797  } else {
798  break;
799  }
800  }
801  $commonEnd = strrev(implode('/', $path));
802  if ((string)$commonEnd !== '') {
803  $webDocRoot = substr($scriptFilename, 0, -(strlen($commonEnd) + 1));
804  }
805  return $webDocRoot;
806  }
807 
816  protected static function determineSiteUrl(string $requestDir, string $pathThisScript, string $pathSite): string
817  {
818  $pathThisScriptDir = substr(dirname($pathThisScript), strlen($pathSite)) . '/';
819  $siteUrl = substr($requestDir, 0, -strlen($pathThisScriptDir));
820 
821  return rtrim($siteUrl, '/') . '/';
822  }
823 
831  protected static function determineSitePath(string $requestHost, string $siteUrl): string
832  {
833  return (string)substr($siteUrl, strlen($requestHost));
834  }
835 
843  protected static function determineSiteScript(string $requestUrl, string $siteUrl): string
844  {
845  return (string)substr($requestUrl, strlen($siteUrl));
846  }
847 
855  public static function createFromServerParams(array $serverParams, array $systemConfiguration = null): self
856  {
857  return new NormalizedParams(
858  $serverParams,
859  $systemConfiguration ?? $GLOBALS['TYPO3_CONF_VARS']['SYS'],
860  Environment::getCurrentScript(),
861  Environment::getPublicPath()
862  );
863  }
864 
872  public static function createFromRequest(ServerRequestInterface $request, array $systemConfiguration = null): self
873  {
874  return static::createFromServerParams(
875  $request->getServerParams(),
876  $systemConfiguration ?? $GLOBALS['TYPO3_CONF_VARS']['SYS']
877  );
878  }
879 }
‪TYPO3\CMS\Core\Http\NormalizedParams\$requestHost
‪string $requestHost
Definition: NormalizedParams.php:60
‪TYPO3\CMS\Core\Http\NormalizedParams\$sitePath
‪string $sitePath
Definition: NormalizedParams.php:176
‪TYPO3\CMS\Core\Http\NormalizedParams\determineRequestPort
‪static int determineRequestPort(string $httpHost, string $httpHostOnly)
Definition: NormalizedParams.php:747
‪TYPO3\CMS\Core\Http\NormalizedParams\$httpAcceptLanguage
‪string $httpAcceptLanguage
Definition: NormalizedParams.php:235
‪TYPO3\CMS\Core\Http\NormalizedParams\$httpAcceptEncoding
‪string $httpAcceptEncoding
Definition: NormalizedParams.php:226
‪TYPO3\CMS\Core\Http\NormalizedParams\$requestUrl
‪string $requestUrl
Definition: NormalizedParams.php:106
‪TYPO3\CMS\Core\Http\NormalizedParams\getDocumentRoot
‪string getDocumentRoot()
Definition: NormalizedParams.php:429
‪TYPO3\CMS\Core\Http\NormalizedParams\getSitePath
‪string getSitePath()
Definition: NormalizedParams.php:445
‪TYPO3\CMS\Core\Http\NormalizedParams\$siteScript
‪string $siteScript
Definition: NormalizedParams.php:185
‪TYPO3\CMS\Core\Http\NormalizedParams\determineRequestHostOnly
‪static string determineRequestHostOnly(string $httpHost)
Definition: NormalizedParams.php:729
‪TYPO3\CMS\Core\Http\NormalizedParams\$remoteAddress
‪string $remoteAddress
Definition: NormalizedParams.php:138
‪TYPO3\CMS\Core\Http\NormalizedParams\$requestHostOnly
‪string $requestHostOnly
Definition: NormalizedParams.php:69
‪TYPO3\CMS\Core\Http\NormalizedParams\$scriptName
‪string $scriptName
Definition: NormalizedParams.php:85
‪TYPO3\CMS\Core\Http\NormalizedParams\determineSiteScript
‪static string determineSiteScript(string $requestUrl, string $siteUrl)
Definition: NormalizedParams.php:819
‪TYPO3\CMS\Core\Http\NormalizedParams\determineHttpHost
‪static string determineHttpHost(array $serverParams, array $configuration, bool $isBehindReverseProxy)
Definition: NormalizedParams.php:537
‪TYPO3\CMS\Core\Http\NormalizedParams\getRequestHost
‪string getRequestHost()
Definition: NormalizedParams.php:341
‪TYPO3\CMS\Core\Http\NormalizedParams\$isBehindReverseProxy
‪bool $isBehindReverseProxy
Definition: NormalizedParams.php:132
‪TYPO3\CMS\Core\Http\NormalizedParams\determineSiteUrl
‪static string determineSiteUrl(string $requestDir, string $pathThisScript, string $pathSite)
Definition: NormalizedParams.php:792
‪TYPO3\CMS\Core\Http\NormalizedParams\$requestScript
‪string $requestScript
Definition: NormalizedParams.php:116
‪TYPO3\CMS\Core\Http\NormalizedParams\getHttpAcceptLanguage
‪string getHttpAcceptLanguage()
Definition: NormalizedParams.php:503
‪TYPO3\CMS\Core\Http\NormalizedParams\$remoteHost
‪string $remoteHost
Definition: NormalizedParams.php:244
‪TYPO3\CMS\Core\Http\NormalizedParams\getHttpUserAgent
‪string getHttpUserAgent()
Definition: NormalizedParams.php:483
‪TYPO3\CMS\Core\Http\NormalizedParams\determineRequestUri
‪static string determineRequestUri(array $serverParams, array $configuration, bool $isHttps, string $scriptName, bool $isBehindReverseProxy)
Definition: NormalizedParams.php:642
‪TYPO3\CMS\Core\Http\NormalizedParams\$siteUrl
‪string $siteUrl
Definition: NormalizedParams.php:167
‪TYPO3\CMS\Core\Http\NormalizedParams\getRequestPort
‪int getRequestPort()
Definition: NormalizedParams.php:357
‪TYPO3\CMS\Core\Http\NormalizedParams\getSiteUrl
‪string getSiteUrl()
Definition: NormalizedParams.php:437
‪TYPO3\CMS\Core\Http\NormalizedParams\getRequestUri
‪string getRequestUri()
Definition: NormalizedParams.php:373
‪TYPO3\CMS\Core\Http\NormalizedParams\$pathInfo
‪string $pathInfo
Definition: NormalizedParams.php:197
‪TYPO3\CMS\Core\Http\NormalizedParams\determineDocumentRoot
‪static string determineDocumentRoot(string $scriptNameOnFileSystem, string $scriptFilename)
Definition: NormalizedParams.php:759
‪TYPO3\CMS\Core\Http\NormalizedParams\getRemoteAddress
‪string getRemoteAddress()
Definition: NormalizedParams.php:413
‪TYPO3\CMS\Core\Http\NormalizedParams\$requestPort
‪int $requestPort
Definition: NormalizedParams.php:75
‪TYPO3\CMS\Core\Http\NormalizedParams\getRequestDir
‪string getRequestDir()
Definition: NormalizedParams.php:397
‪TYPO3\CMS\Core\Http\NormalizedParams\$documentRoot
‪string $documentRoot
Definition: NormalizedParams.php:154
‪TYPO3\CMS\Core\Http\NormalizedParams\getScriptFilename
‪string getScriptFilename()
Definition: NormalizedParams.php:421
‪TYPO3\CMS\Core\Http\NormalizedParams\getRequestUrl
‪string getRequestUrl()
Definition: NormalizedParams.php:381
‪TYPO3\CMS\Core\Http\NormalizedParams\getRequestHostOnly
‪string getRequestHostOnly()
Definition: NormalizedParams.php:349
‪TYPO3\CMS\Core\Http\NormalizedParams\getQueryString
‪string getQueryString()
Definition: NormalizedParams.php:523
‪TYPO3\CMS\Core\Http\NormalizedParams\getSiteScript
‪string getSiteScript()
Definition: NormalizedParams.php:453
‪TYPO3\CMS\Core\Http\NormalizedParams\$scriptFilename
‪string $scriptFilename
Definition: NormalizedParams.php:146
‪TYPO3\CMS\Core\Http\NormalizedParams\getRequestScript
‪string getRequestScript()
Definition: NormalizedParams.php:389
‪TYPO3\CMS\Core\Http\NormalizedParams\isHttps
‪bool isHttps()
Definition: NormalizedParams.php:333
‪TYPO3\CMS\Core\Http\NormalizedParams\determineScriptName
‪static string determineScriptName(array $serverParams, array $configuration, bool $isHttps, bool $isBehindReverseProxy)
Definition: NormalizedParams.php:613
‪TYPO3\CMS\Core\Utility\GeneralUtility\trimExplode
‪static string[] trimExplode($delim, $string, $removeEmptyValues=false, $limit=0)
Definition: GeneralUtility.php:1059
‪TYPO3\CMS\Core\Http\NormalizedParams\$requestDir
‪string $requestDir
Definition: NormalizedParams.php:126
‪TYPO3\CMS\Core\Http\NormalizedParams\__construct
‪__construct(array $serverParams, array $configuration, string $pathThisScript, string $pathSite)
Definition: NormalizedParams.php:272
‪TYPO3\CMS\Core\Http\NormalizedParams\$requestUri
‪string $requestUri
Definition: NormalizedParams.php:96
‪TYPO3\CMS\Core\Http\NormalizedParams\$isHttps
‪bool $isHttps
Definition: NormalizedParams.php:50
‪TYPO3\CMS\Core\Core\Environment
Definition: Environment.php:40
‪TYPO3\CMS\Core\Http\NormalizedParams\determineHttps
‪static bool determineHttps(array $serverParams, array $configuration)
Definition: NormalizedParams.php:585
‪TYPO3\CMS\Core\Http\NormalizedParams\$queryString
‪string $queryString
Definition: NormalizedParams.php:255
‪TYPO3\CMS\Core\Http\NormalizedParams\isBehindReverseProxy
‪bool isBehindReverseProxy()
Definition: NormalizedParams.php:405
‪TYPO3\CMS\Core\Http\NormalizedParams\$httpReferer
‪string $httpReferer
Definition: NormalizedParams.php:208
‪TYPO3\CMS\Core\Http\NormalizedParams\getHttpReferer
‪string getHttpReferer()
Definition: NormalizedParams.php:473
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:46
‪TYPO3\CMS\Core\Http\NormalizedParams\getHttpAcceptEncoding
‪string getHttpAcceptEncoding()
Definition: NormalizedParams.php:493
‪TYPO3\CMS\Core\Http\NormalizedParams\getPathInfo
‪string getPathInfo()
Definition: NormalizedParams.php:463
‪TYPO3\CMS\Core\Http\NormalizedParams\determineRemoteAddress
‪static string determineRemoteAddress(array $serverParams, array $configuration, bool $isBehindReverseProxy)
Definition: NormalizedParams.php:684
‪TYPO3\CMS\Core\Http\NormalizedParams\getScriptName
‪string getScriptName()
Definition: NormalizedParams.php:365
‪TYPO3\CMS\Core\Http\NormalizedParams\encodeFileSystemPathComponentForUrlPath
‪static encodeFileSystemPathComponentForUrlPath(string $path)
Definition: NormalizedParams.php:317
‪TYPO3\CMS\Core\Http\NormalizedParams\getRemoteHost
‪string getRemoteHost()
Definition: NormalizedParams.php:513
‪TYPO3\CMS\Core\Http\NormalizedParams\$httpHost
‪string $httpHost
Definition: NormalizedParams.php:46
‪TYPO3\CMS\Core\Http\NormalizedParams\determineSitePath
‪static string determineSitePath(string $requestHost, string $siteUrl)
Definition: NormalizedParams.php:807
‪TYPO3\CMS\Core\Http\NormalizedParams
Definition: NormalizedParams.php:35
‪TYPO3\CMS\Core\Http\NormalizedParams\$httpUserAgent
‪string $httpUserAgent
Definition: NormalizedParams.php:217
‪TYPO3\CMS\Core\Http
Definition: AbstractApplication.php:18
‪TYPO3\CMS\Core\Http\NormalizedParams\determineIsBehindReverseProxy
‪static bool determineIsBehindReverseProxy($serverParams, $configuration)
Definition: NormalizedParams.php:715
‪TYPO3\CMS\Core\Http\NormalizedParams\getHttpHost
‪string getHttpHost()
Definition: NormalizedParams.php:325