‪TYPO3CMS  ‪main
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 
38 {
50  protected ‪$httpHost = '';
51 
55  protected ‪$isHttps = false;
56 
66  protected ‪$requestHost = '';
67 
76  protected ‪$requestHostOnly = '';
77 
83  protected ‪$requestPort = 0;
84 
95  protected ‪$scriptName = '';
96 
107  protected ‪$requestUri = '';
108 
119  protected ‪$requestUrl = '';
120 
131  protected ‪$requestScript = '';
132 
143  protected ‪$requestDir = '';
144 
150  protected ‪$isBehindReverseProxy = false;
151 
157  protected ‪$remoteAddress = '';
158 
167  protected ‪$scriptFilename = '';
168 
176  protected ‪$documentRoot = '';
177 
190  protected ‪$siteUrl = '';
191 
200  protected ‪$sitePath = '';
201 
211  protected ‪$siteScript = '';
212 
222  protected ‪$pathInfo = '';
223 
234  protected ‪$httpReferer = '';
235 
244  protected ‪$httpUserAgent = '';
245 
254  protected ‪$httpAcceptEncoding = '';
255 
264  protected ‪$httpAcceptLanguage = '';
265 
274  protected ‪$remoteHost = '';
275 
286  protected ‪$queryString = '';
287 
303  public function ‪__construct(array $serverParams, array $configuration, string $pathThisScript, string $pathSite)
304  {
306  $serverParams,
307  $configuration
308  );
309  ‪$httpHost = $this->httpHost = ‪self::determineHttpHost($serverParams, $configuration, ‪$isBehindReverseProxy);
310  ‪$isHttps = $this->‪isHttps = ‪self::determineHttps($serverParams, $configuration);
311  ‪$requestHost = $this->requestHost = (‪$isHttps ? 'https://' : 'http://') . ‪$httpHost;
314  $scriptNameOnFileSystem = ‪self::determineScriptName(
315  $serverParams,
316  $configuration,
317  ‪$isHttps,
319  );
320  ‪$scriptName = $this->scriptName = ‪self::encodeFileSystemPathComponentForUrlPath($scriptNameOnFileSystem);
321  ‪$requestUri = $this->requestUri = ‪self::determineRequestUri(
322  $serverParams,
323  $configuration,
327  );
328  ‪$requestUrl = $this->requestUrl = ‪$requestHost . ‪$requestUri;
329  $this->requestScript = ‪$requestHost . ‪$scriptName;
330  ‪$requestDir = $this->requestDir = ‪$requestHost . GeneralUtility::dirname(‪$scriptName) . '/';
331  $this->remoteAddress = ‪self::determineRemoteAddress($serverParams, $configuration, ‪$isBehindReverseProxy);
332  ‪$scriptFilename = $this->scriptFilename = $pathThisScript;
333  $this->documentRoot = ‪self::determineDocumentRoot($scriptNameOnFileSystem, ‪$scriptFilename);
334  ‪$siteUrl = $this->siteUrl = ‪self::determineSiteUrl(‪$requestDir, $pathThisScript, $pathSite . '/');
337 
338  // @deprecated Below variables can be fully deprecated as soon as core does not use them anymore
339  $this->pathInfo = $serverParams['PATH_INFO'] ?? '';
340  $this->httpReferer = $serverParams['HTTP_REFERER'] ?? '';
341  $this->httpUserAgent = $serverParams['HTTP_USER_AGENT'] ?? '';
342  $this->httpAcceptEncoding = $serverParams['HTTP_ACCEPT_ENCODING'] ?? '';
343  $this->httpAcceptLanguage = $serverParams['HTTP_ACCEPT_LANGUAGE'] ?? '';
344  $this->remoteHost = $serverParams['REMOTE_HOST'] ?? '';
345  $this->queryString = $serverParams['QUERY_STRING'] ?? '';
346  }
347 
348  private static function ‪encodeFileSystemPathComponentForUrlPath(string $path): string
349  {
350  return implode('/', array_map(rawurlencode(...), explode('/', $path)));
351  }
352 
356  public function ‪getHttpHost(): string
357  {
358  return ‪$this->httpHost;
359  }
360 
364  public function ‪isHttps(): bool
365  {
366  return ‪$this->isHttps;
367  }
368 
372  public function ‪getRequestHost(): string
373  {
374  return ‪$this->requestHost;
375  }
376 
380  public function ‪getRequestHostOnly(): string
381  {
383  }
384 
388  public function ‪getRequestPort(): int
389  {
390  return ‪$this->requestPort;
391  }
392 
396  public function ‪getScriptName(): string
397  {
398  return ‪$this->scriptName;
399  }
400 
404  public function ‪getRequestUri(): string
405  {
406  return ‪$this->requestUri;
407  }
408 
412  public function ‪getRequestUrl(): string
413  {
414  return ‪$this->requestUrl;
415  }
416 
420  public function ‪getRequestScript(): string
421  {
423  }
424 
428  public function ‪getRequestDir(): string
429  {
430  return ‪$this->requestDir;
431  }
432 
436  public function ‪isBehindReverseProxy(): bool
437  {
439  }
440 
444  public function ‪getRemoteAddress(): string
445  {
447  }
448 
452  public function ‪getScriptFilename(): string
453  {
455  }
456 
460  public function ‪getDocumentRoot(): string
461  {
462  return ‪$this->documentRoot;
463  }
464 
468  public function ‪getSiteUrl(): string
469  {
471  }
472 
476  public function ‪getSitePath(): string
477  {
478  return ‪$this->sitePath;
479  }
480 
484  public function ‪getSiteScript(): string
485  {
486  return ‪$this->siteScript;
487  }
488 
494  public function ‪getPathInfo(): string
495  {
496  return ‪$this->pathInfo;
497  }
498 
504  public function ‪getHttpReferer(): string
505  {
506  return ‪$this->httpReferer;
507  }
508 
514  public function ‪getHttpUserAgent(): string
515  {
517  }
518 
524  public function ‪getHttpAcceptEncoding(): string
525  {
527  }
528 
534  public function ‪getHttpAcceptLanguage(): string
535  {
537  }
538 
544  public function ‪getRemoteHost(): string
545  {
546  return ‪$this->remoteHost;
547  }
548 
554  public function ‪getQueryString(): string
555  {
556  return ‪$this->queryString;
557  }
558 
567  protected static function ‪determineHttpHost(
568  array $serverParams,
569  array $configuration,
571  ): string {
572  ‪$httpHost = $serverParams['HTTP_HOST'] ?? '';
574  // If the request comes from a configured proxy which has set HTTP_X_FORWARDED_HOST, then
575  // evaluate reverseProxyHeaderMultiValue and
576  $xForwardedHostArray = ‪GeneralUtility::trimExplode(',', $serverParams['HTTP_X_FORWARDED_HOST'] ?? '', true);
577  $xForwardedHost = '';
578  // Choose which host in list to use
579  if (!empty($xForwardedHostArray)) {
580  $configuredReverseProxyHeaderMultiValue = trim($configuration['reverseProxyHeaderMultiValue'] ?? '');
581  // Default if reverseProxyHeaderMultiValue is not set or set to 'none', instead of 'first' / 'last' is to
582  // ignore $serverParams['HTTP_X_FORWARDED_HOST']
583  // @todo: Maybe this default is stupid: Both SYS/reverseProxyIP hand SYS/reverseProxyHeaderMultiValue have to
584  // @todo: be configured for a working setup. It would be easier to only configure SYS/reverseProxyIP and fall
585  // @todo: back to "first" if SYS/reverseProxyHeaderMultiValue is not set.
586  if ($configuredReverseProxyHeaderMultiValue === 'last') {
587  $xForwardedHost = array_pop($xForwardedHostArray);
588  } elseif ($configuredReverseProxyHeaderMultiValue === 'first') {
589  $xForwardedHost = array_shift($xForwardedHostArray);
590  }
591  }
592  if ($xForwardedHost) {
593  ‪$httpHost = $xForwardedHost;
594  }
595  }
596  return ‪$httpHost;
597  }
598 
607  protected static function ‪determineHttps(array $serverParams, array $configuration): bool
608  {
609  ‪$isHttps = false;
610  $configuredProxySSL = trim($configuration['reverseProxySSL'] ?? '');
611  if ($configuredProxySSL === '*') {
612  $configuredProxySSL = trim($configuration['reverseProxyIP'] ?? '');
613  }
614  $httpsParam = (string)($serverParams['HTTPS'] ?? '');
615  if (‪GeneralUtility::cmpIP(trim($serverParams['REMOTE_ADDR'] ?? ''), $configuredProxySSL)
616  || ($serverParams['SSL_SESSION_ID'] ?? '')
617  // https://secure.php.net/manual/en/reserved.variables.server.php
618  // "Set to a non-empty value if the script was queried through the HTTPS protocol."
619  || ($httpsParam !== '' && $httpsParam !== 'off' && $httpsParam !== '0')
620  ) {
621  ‪$isHttps = true;
622  }
623  return ‪$isHttps;
624  }
625 
635  protected static function ‪determineScriptName(
636  array $serverParams,
637  array $configuration,
638  bool ‪$isHttps,
640  ): string {
641  ‪$scriptName = $serverParams['SCRIPT_NAME'] ?? '';
643  // Add a prefix if TYPO3 is behind a proxy: ext-domain.com => int-server.com/prefix
644  if (‪$isHttps && !empty($configuration['reverseProxyPrefixSSL'])) {
645  ‪$scriptName = $configuration['reverseProxyPrefixSSL'] . ‪$scriptName;
646  } elseif (!empty($configuration['reverseProxyPrefix'])) {
647  ‪$scriptName = $configuration['reverseProxyPrefix'] . ‪$scriptName;
648  }
649  }
650  return ‪$scriptName;
651  }
652 
664  protected static function ‪determineRequestUri(
665  array $serverParams,
666  array $configuration,
667  bool ‪$isHttps,
668  string ‪$scriptName,
670  ): string {
671  $proxyPrefixApplied = false;
672  if (!empty($configuration['requestURIvar'])) {
673  // This is for URL rewriter that store the original URI in a server
674  // variable (e.g. ISAPI Rewriter for IIS: HTTP_X_REWRITE_URL), a config then looks like:
675  // requestURIvar = '_SERVER|HTTP_X_REWRITE_URL' which will access $GLOBALS['_SERVER']['HTTP_X_REWRITE_URL']
676  [$firstLevel, $secondLevel] = ‪GeneralUtility::trimExplode('|', $configuration['requestURIvar'], true);
677  ‪$requestUri = ‪$GLOBALS[$firstLevel][$secondLevel];
678  } elseif (empty($serverParams['REQUEST_URI'])) {
679  // This is for ISS/CGI which does not have the REQUEST_URI available.
680  ‪$queryString = !empty($serverParams['QUERY_STRING']) ? '?' . $serverParams['QUERY_STRING'] : '';
681  // script name already had the proxy prefix handling, we must not add it a second time
682  $proxyPrefixApplied = true;
683  ‪$requestUri = '/' . ltrim(‪$scriptName, '/') . ‪$queryString;
684  } else {
685  ‪$requestUri = '/' . ltrim($serverParams['REQUEST_URI'], '/');
686  }
687  if (!$proxyPrefixApplied && ‪$isBehindReverseProxy) {
688  // Add a prefix if TYPO3 is behind a proxy: ext-domain.com => int-server.com/prefix
689  if (‪$isHttps && !empty($configuration['reverseProxyPrefixSSL'])) {
690  ‪$requestUri = $configuration['reverseProxyPrefixSSL'] . ‪$requestUri;
691  } elseif (!empty($configuration['reverseProxyPrefix'])) {
692  ‪$requestUri = $configuration['reverseProxyPrefix'] . ‪$requestUri;
693  }
694  }
695  return ‪$requestUri;
696  }
697 
706  protected static function ‪determineRemoteAddress(
707  array $serverParams,
708  array $configuration,
710  ): string {
711  ‪$remoteAddress = trim($serverParams['REMOTE_ADDR'] ?? '');
713  $ip = ‪GeneralUtility::trimExplode(',', $serverParams['HTTP_X_FORWARDED_FOR'] ?? '', true);
714  // Choose which IP in list to use
715  $configuredReverseProxyHeaderMultiValue = trim($configuration['reverseProxyHeaderMultiValue'] ?? '');
716  if (!empty($ip) && $configuredReverseProxyHeaderMultiValue === 'last') {
717  $ip = (string)array_pop($ip);
718  } elseif (!empty($ip) && $configuredReverseProxyHeaderMultiValue === 'first') {
719  $ip = (string)array_shift($ip);
720  } else {
721  $ip = '';
722  }
723  if (‪GeneralUtility::validIP($ip)) {
724  ‪$remoteAddress = $ip;
725  }
726  }
728  }
729 
737  protected static function ‪determineIsBehindReverseProxy($serverParams, $configuration): bool
738  {
740  trim($serverParams['REMOTE_ADDR'] ?? ''),
741  trim($configuration['reverseProxyIP'] ?? '')
742  );
743  }
744 
751  protected static function ‪determineRequestHostOnly(string ‪$httpHost): string
752  {
753  $httpHostBracketPosition = strpos(‪$httpHost, ']');
754  $httpHostParts = explode(':', ‪$httpHost);
755  return $httpHostBracketPosition !== false ? substr(
756  ‪$httpHost,
757  0,
758  $httpHostBracketPosition + 1
759  ) : array_shift($httpHostParts);
760  }
761 
769  protected static function ‪determineRequestPort(string ‪$httpHost, string $httpHostOnly): int
770  {
771  return strlen(‪$httpHost) > strlen($httpHostOnly) ? (int)substr(‪$httpHost, strlen($httpHostOnly) + 1) : 0;
772  }
773 
781  protected static function ‪determineDocumentRoot(string $scriptNameOnFileSystem, string ‪$scriptFilename): string
782  {
783  // Get the web root (it is not the root of the TYPO3 installation)
784  // Some CGI-versions (LA13CGI) and mod-rewrite rules on MODULE versions will deliver a 'wrong'
785  // DOCUMENT_ROOT (according to our description). Further various aliases/mod_rewrite rules can
786  // disturb this as well. Therefore the DOCUMENT_ROOT is always calculated as the SCRIPT_FILENAME
787  // minus the end part shared with SCRIPT_NAME.
788  $webDocRoot = '';
789  $scriptNameArray = explode('/', strrev($scriptNameOnFileSystem));
790  $scriptFilenameArray = explode('/', strrev(‪$scriptFilename));
791  $path = [];
792  foreach ($scriptNameArray as $segmentNumber => $segment) {
793  if ((string)$scriptFilenameArray[$segmentNumber] === (string)$segment) {
794  $path[] = $segment;
795  } else {
796  break;
797  }
798  }
799  $commonEnd = strrev(implode('/', $path));
800  if ((string)$commonEnd !== '') {
801  $webDocRoot = substr(‪$scriptFilename, 0, -(strlen($commonEnd) + 1));
802  }
803  return $webDocRoot;
804  }
805 
814  protected static function ‪determineSiteUrl(string ‪$requestDir, string $pathThisScript, string $pathSite): string
815  {
816  $pathThisScriptDir = substr(dirname($pathThisScript), strlen($pathSite)) . '/';
817  ‪$siteUrl = (string)substr(‪$requestDir, 0, -strlen($pathThisScriptDir));
818 
819  return rtrim(‪$siteUrl, '/') . '/';
820  }
821 
828  protected static function ‪determineSitePath(string ‪$requestHost, string ‪$siteUrl): string
829  {
830  return (string)substr(‪$siteUrl, strlen(‪$requestHost));
831  }
832 
836  protected static function ‪determineSiteScript(string ‪$requestUrl, string ‪$siteUrl): string
837  {
838  return (string)substr(‪$requestUrl, strlen(‪$siteUrl));
839  }
840 
848  public static function ‪createFromServerParams(array $serverParams, array $systemConfiguration = null): self
849  {
850  return new ‪NormalizedParams(
851  $serverParams,
852  $systemConfiguration ?? ‪$GLOBALS['TYPO3_CONF_VARS']['SYS'],
855  );
856  }
857 
864  public static function ‪createFromRequest(ServerRequestInterface $request, array $systemConfiguration = null): self
865  {
866  return static::createFromServerParams(
867  $request->getServerParams(),
868  $systemConfiguration ?? ‪$GLOBALS['TYPO3_CONF_VARS']['SYS']
869  );
870  }
871 }
‪TYPO3\CMS\Core\Http\NormalizedParams\$requestHost
‪string $requestHost
Definition: NormalizedParams.php:63
‪TYPO3\CMS\Core\Http\NormalizedParams\$sitePath
‪string $sitePath
Definition: NormalizedParams.php:184
‪TYPO3\CMS\Core\Http\NormalizedParams\determineRequestPort
‪static int determineRequestPort(string $httpHost, string $httpHostOnly)
Definition: NormalizedParams.php:745
‪TYPO3\CMS\Core\Http\NormalizedParams\$httpAcceptLanguage
‪string $httpAcceptLanguage
Definition: NormalizedParams.php:242
‪TYPO3\CMS\Core\Http\NormalizedParams\$httpAcceptEncoding
‪string $httpAcceptEncoding
Definition: NormalizedParams.php:233
‪TYPO3\CMS\Core\Http\NormalizedParams\$requestUrl
‪string $requestUrl
Definition: NormalizedParams.php:111
‪TYPO3\CMS\Core\Http\NormalizedParams\getDocumentRoot
‪string getDocumentRoot()
Definition: NormalizedParams.php:436
‪TYPO3\CMS\Core\Http\NormalizedParams\getSitePath
‪string getSitePath()
Definition: NormalizedParams.php:452
‪TYPO3\CMS\Core\Http\NormalizedParams\$siteScript
‪string $siteScript
Definition: NormalizedParams.php:194
‪TYPO3\CMS\Core\Http\NormalizedParams\determineRequestHostOnly
‪static string determineRequestHostOnly(string $httpHost)
Definition: NormalizedParams.php:727
‪TYPO3\CMS\Core\Http\NormalizedParams\$remoteAddress
‪string $remoteAddress
Definition: NormalizedParams.php:145
‪TYPO3\CMS\Core\Http\NormalizedParams\$requestHostOnly
‪string $requestHostOnly
Definition: NormalizedParams.php:72
‪TYPO3\CMS\Core\Http\NormalizedParams\$scriptName
‪string $scriptName
Definition: NormalizedParams.php:89
‪TYPO3\CMS\Core\Core\Environment\getPublicPath
‪static getPublicPath()
Definition: Environment.php:187
‪TYPO3\CMS\Core\Http\NormalizedParams\determineHttpHost
‪static string determineHttpHost(array $serverParams, array $configuration, bool $isBehindReverseProxy)
Definition: NormalizedParams.php:543
‪TYPO3\CMS\Core\Http\NormalizedParams\getRequestHost
‪string getRequestHost()
Definition: NormalizedParams.php:348
‪TYPO3\CMS\Core\Http\NormalizedParams\$isBehindReverseProxy
‪bool $isBehindReverseProxy
Definition: NormalizedParams.php:139
‪TYPO3\CMS\Core\Http\NormalizedParams\determineSiteUrl
‪static string determineSiteUrl(string $requestDir, string $pathThisScript, string $pathSite)
Definition: NormalizedParams.php:790
‪TYPO3\CMS\Core\Http\NormalizedParams\$requestScript
‪string $requestScript
Definition: NormalizedParams.php:122
‪TYPO3\CMS\Core\Http\NormalizedParams\getHttpAcceptLanguage
‪string getHttpAcceptLanguage()
Definition: NormalizedParams.php:510
‪TYPO3\CMS\Core\Http\NormalizedParams\$remoteHost
‪string $remoteHost
Definition: NormalizedParams.php:251
‪TYPO3\CMS\Core\Core\Environment\getCurrentScript
‪static getCurrentScript()
Definition: Environment.php:220
‪TYPO3\CMS\Core\Http\NormalizedParams\getHttpUserAgent
‪string getHttpUserAgent()
Definition: NormalizedParams.php:490
‪TYPO3\CMS\Core\Utility\GeneralUtility\cmpIP
‪static bool cmpIP(string $baseIP, string $list)
Definition: GeneralUtility.php:113
‪TYPO3\CMS\Core\Http\NormalizedParams\determineRequestUri
‪static string determineRequestUri(array $serverParams, array $configuration, bool $isHttps, string $scriptName, bool $isBehindReverseProxy)
Definition: NormalizedParams.php:640
‪TYPO3\CMS\Core\Http\NormalizedParams\$siteUrl
‪string $siteUrl
Definition: NormalizedParams.php:175
‪TYPO3\CMS\Core\Http\NormalizedParams\getRequestPort
‪int getRequestPort()
Definition: NormalizedParams.php:364
‪TYPO3\CMS\Core\Http\NormalizedParams\getSiteUrl
‪string getSiteUrl()
Definition: NormalizedParams.php:444
‪TYPO3\CMS\Core\Http\NormalizedParams\getRequestUri
‪string getRequestUri()
Definition: NormalizedParams.php:380
‪TYPO3\CMS\Core\Http\NormalizedParams\$pathInfo
‪string $pathInfo
Definition: NormalizedParams.php:204
‪TYPO3\CMS\Core\Http\NormalizedParams\determineDocumentRoot
‪static string determineDocumentRoot(string $scriptNameOnFileSystem, string $scriptFilename)
Definition: NormalizedParams.php:757
‪TYPO3\CMS\Core\Http\NormalizedParams\getRemoteAddress
‪string getRemoteAddress()
Definition: NormalizedParams.php:420
‪TYPO3\CMS\Core\Http\NormalizedParams\$requestPort
‪int $requestPort
Definition: NormalizedParams.php:78
‪TYPO3\CMS\Core\Http\NormalizedParams\getRequestDir
‪string getRequestDir()
Definition: NormalizedParams.php:404
‪TYPO3\CMS\Core\Http\NormalizedParams\determineSitePath
‪static determineSitePath(string $requestHost, string $siteUrl)
Definition: NormalizedParams.php:804
‪TYPO3\CMS\Core\Http\NormalizedParams\$documentRoot
‪string $documentRoot
Definition: NormalizedParams.php:162
‪TYPO3\CMS\Core\Http\NormalizedParams\getScriptFilename
‪string getScriptFilename()
Definition: NormalizedParams.php:428
‪TYPO3\CMS\Core\Http\NormalizedParams\getRequestUrl
‪string getRequestUrl()
Definition: NormalizedParams.php:388
‪TYPO3\CMS\Core\Http\NormalizedParams\createFromServerParams
‪static static createFromServerParams(array $serverParams, array $systemConfiguration=null)
Definition: NormalizedParams.php:824
‪TYPO3\CMS\Core\Http\NormalizedParams\getRequestHostOnly
‪string getRequestHostOnly()
Definition: NormalizedParams.php:356
‪TYPO3\CMS\Core\Http\NormalizedParams\getQueryString
‪string getQueryString()
Definition: NormalizedParams.php:530
‪TYPO3\CMS\Core\Http\NormalizedParams\getSiteScript
‪string getSiteScript()
Definition: NormalizedParams.php:460
‪TYPO3\CMS\Core\Http\NormalizedParams\$scriptFilename
‪string $scriptFilename
Definition: NormalizedParams.php:154
‪TYPO3\CMS\Core\Http\NormalizedParams\getRequestScript
‪string getRequestScript()
Definition: NormalizedParams.php:396
‪TYPO3\CMS\Core\Http\NormalizedParams\isHttps
‪bool isHttps()
Definition: NormalizedParams.php:340
‪TYPO3\CMS\Core\Http\NormalizedParams\determineSiteScript
‪static determineSiteScript(string $requestUrl, string $siteUrl)
Definition: NormalizedParams.php:812
‪TYPO3\CMS\Core\Http\NormalizedParams\determineScriptName
‪static string determineScriptName(array $serverParams, array $configuration, bool $isHttps, bool $isBehindReverseProxy)
Definition: NormalizedParams.php:611
‪TYPO3\CMS\Core\Http\NormalizedParams\$requestDir
‪string $requestDir
Definition: NormalizedParams.php:133
‪TYPO3\CMS\Core\Http\NormalizedParams\__construct
‪__construct(array $serverParams, array $configuration, string $pathThisScript, string $pathSite)
Definition: NormalizedParams.php:279
‪TYPO3\CMS\Core\Http\NormalizedParams\$requestUri
‪string $requestUri
Definition: NormalizedParams.php:100
‪TYPO3\CMS\Core\Http\NormalizedParams\$isHttps
‪bool $isHttps
Definition: NormalizedParams.php:53
‪$GLOBALS
‪$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['adminpanel']['modules']
Definition: ext_localconf.php:25
‪TYPO3\CMS\Core\Core\Environment
Definition: Environment.php:41
‪TYPO3\CMS\Core\Http\NormalizedParams\determineHttps
‪static bool determineHttps(array $serverParams, array $configuration)
Definition: NormalizedParams.php:583
‪TYPO3\CMS\Core\Http\NormalizedParams\$queryString
‪string $queryString
Definition: NormalizedParams.php:262
‪TYPO3\CMS\Core\Http\NormalizedParams\isBehindReverseProxy
‪bool isBehindReverseProxy()
Definition: NormalizedParams.php:412
‪TYPO3\CMS\Core\Utility\GeneralUtility\validIP
‪static bool validIP(string $ip)
Definition: GeneralUtility.php:303
‪TYPO3\CMS\Core\Http\NormalizedParams\$httpReferer
‪string $httpReferer
Definition: NormalizedParams.php:215
‪TYPO3\CMS\Core\Http\NormalizedParams\getHttpReferer
‪string getHttpReferer()
Definition: NormalizedParams.php:480
‪TYPO3\CMS\Core\Utility\GeneralUtility
Definition: GeneralUtility.php:52
‪TYPO3\CMS\Core\Http\NormalizedParams\getHttpAcceptEncoding
‪string getHttpAcceptEncoding()
Definition: NormalizedParams.php:500
‪TYPO3\CMS\Core\Http\NormalizedParams\getPathInfo
‪string getPathInfo()
Definition: NormalizedParams.php:470
‪TYPO3\CMS\Core\Http\NormalizedParams\determineRemoteAddress
‪static string determineRemoteAddress(array $serverParams, array $configuration, bool $isBehindReverseProxy)
Definition: NormalizedParams.php:682
‪TYPO3\CMS\Core\Http\NormalizedParams\getScriptName
‪string getScriptName()
Definition: NormalizedParams.php:372
‪TYPO3\CMS\Core\Http\NormalizedParams\createFromRequest
‪static static createFromRequest(ServerRequestInterface $request, array $systemConfiguration=null)
Definition: NormalizedParams.php:840
‪TYPO3\CMS\Core\Http\NormalizedParams\encodeFileSystemPathComponentForUrlPath
‪static encodeFileSystemPathComponentForUrlPath(string $path)
Definition: NormalizedParams.php:324
‪TYPO3\CMS\Core\Http\NormalizedParams\getRemoteHost
‪string getRemoteHost()
Definition: NormalizedParams.php:520
‪TYPO3\CMS\Core\Http\NormalizedParams\$httpHost
‪string $httpHost
Definition: NormalizedParams.php:49
‪TYPO3\CMS\Core\Utility\GeneralUtility\trimExplode
‪static list< string > trimExplode(string $delim, string $string, bool $removeEmptyValues=false, int $limit=0)
Definition: GeneralUtility.php:822
‪TYPO3\CMS\Core\Http\NormalizedParams
Definition: NormalizedParams.php:38
‪TYPO3\CMS\Core\Http\NormalizedParams\$httpUserAgent
‪string $httpUserAgent
Definition: NormalizedParams.php:224
‪TYPO3\CMS\Core\Http
Definition: AbstractApplication.php:18
‪TYPO3\CMS\Core\Http\NormalizedParams\determineIsBehindReverseProxy
‪static bool determineIsBehindReverseProxy($serverParams, $configuration)
Definition: NormalizedParams.php:713
‪TYPO3\CMS\Core\Http\NormalizedParams\getHttpHost
‪string getHttpHost()
Definition: NormalizedParams.php:332