ApacheRequest.php 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. <?php
  2. /*
  3. * This file is part of the Symfony package.
  4. *
  5. * (c) Fabien Potencier <fabien@symfony.com>
  6. *
  7. * For the full copyright and license information, please view the LICENSE
  8. * file that was distributed with this source code.
  9. */
  10. namespace Symfony\Component\HttpFoundation;
  11. /**
  12. * Request represents an HTTP request from an Apache server.
  13. *
  14. * @author Fabien Potencier <fabien@symfony.com>
  15. */
  16. class ApacheRequest extends Request
  17. {
  18. /**
  19. * {@inheritdoc}
  20. */
  21. protected function prepareRequestUri()
  22. {
  23. return $this->server->get('REQUEST_URI');
  24. }
  25. /**
  26. * {@inheritdoc}
  27. */
  28. protected function prepareBaseUrl()
  29. {
  30. $baseUrl = $this->server->get('SCRIPT_NAME');
  31. if (false === strpos($this->server->get('REQUEST_URI'), $baseUrl)) {
  32. // assume mod_rewrite
  33. return rtrim(dirname($baseUrl), '/\\');
  34. }
  35. return $baseUrl;
  36. }
  37. /**
  38. * {@inheritdoc}
  39. */
  40. protected function preparePathInfo()
  41. {
  42. return $this->server->get('PATH_INFO') ?: substr($this->prepareRequestUri(), strlen($this->prepareBaseUrl())) ?: '/';
  43. }
  44. }