Правила переписывания Apache, стирающие глобальный $ _SERVER ['request-uri'] - PullRequest
0 голосов
/ 27 мая 2018

В настоящее время я поддерживаю устаревшее приложение, работающее локально на сервере.Я создал Dockerfile с теми же характеристиками для этого сервера, но получаю странную ошибку.Это унаследованное приложение было построено на собственной домашней платформе, разработанной старым программистом.И он серьезно полагается на значение глобального $ _SERVER ['request_uri'] для маршрутизации.

На сервере значением является запрошенный uri (т.е. www.test.local), в версии докера я получаюпросто "/" в ответ.Вот мой docker-compose

#-- v2 syntax
version: '2'

# Named volumes
volumes:
# MySQL Data
  hibrida-mysql-data:
  driver: local

  services:
   # MySQL (5.7)
   mysql:
    image: mysql:5.7
    container_name: hibrida-mysql
   volumes:
    - ./.db-data/:/var/lib/mysql
ports:
  - "3306:3306"
environment:
  - MYSQL_ROOT_PASSWORD=hibrida    
  - MYSQL_DATABASE=hibrida
  - MYSQL_USER=hibrida
  - MYSQL_PASSWORD=hibrida

# PHP (with Nginx)
app:
image: 1and1internet/ubuntu-16-apache-php-5.6
container_name: hibrida-apache
environment:
  XDEBUG_ENABLED: "true"
  XDEBUG_CONFIG: "remote_host=192.168.25.3"
  PHP_IDE_CONFIG: "serverName=dev.local"
volumes:
  - ./public:/var/www
  - ./config/vhost.conf:/etc/apache2/sites-available/vhost.conf
  - ./config/vhost.conf:/etc/apache2/sites-enabled/vhost.conf
  #- ./config/php.ini:/usr/local/etc/php/php.ini
  #- ./config/www.conf:/etc/php7/php-fpm.d/www.conf

ports:
  - "80:80"
links:
  - mysql

Я только что вошел в контейнер apache и включил перезапись ae2nmod.Что бы это могло быть?

1 Ответ

0 голосов
/ 27 мая 2018

Использование $_SERVER['REQUEST_URI'] - это один из самых надежных способов просмотра исходного неизмененного запроса от клиента, который отражает первую строку HTTP-запроса независимо от того, как был вызван скрипт PHP.Он не должен содержать имя хоста, и при посещении корня документа следует ожидать /.Что-то еще модифицирует его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...